Editing Talk:PS2 Emulation

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
==Game CONFIG commands (notepad and worklog)==
== Playstation 2 ==
All info here related with commands needs to be moved to frontpage at some point
===ps2_netemu===
<pre>
seg017:00000000001355B4                ld        r28, off_74BA20 # unk_933F80
seg017:00000000001355B8                .using unk_933F80, r28
seg017:00000000001355B8                lis      r0, 0x4000 # 0x40000020
seg017:00000000001355BC                ori      r0, r0, 0x20 # 0x40000020
seg017:00000000001355C0                ld        r9, off_934158 # unk_0
seg017:00000000001355C4                and       r9, r9, r0    # r9 = r9 & 0x40000020
seg017:00000000001355C8                cmpdi    cr7, r9, 0
seg017:00000000001355CC                bne      cr7, loc_1356E4
seg017:00000000001355D0                ld        r0, off_934158 # unk_0
seg017:00000000001355D4                rlwinm    r0, r0, 0,2,2 # r0 = r0 & 0x20000000
seg017:00000000001355D8                cmpdi    cr7, r0, 0
seg017:00000000001355DC                bne      cr7, image_selection
seg017:00000000001355E0                ld        r0, off_934158 # unk_0
seg017:00000000001355E4                rlwinm    r0, r0, 0,5,5 # r0 = r0 & 0x4000000
seg017:00000000001355E8                cmpdi    cr7, r0, 0
seg017:00000000001355EC                beq      cr7, static_path
</pre>


===ps2_netemu command 0x1===
===ps2_netemu syscalls ===
There are some additional internal patches using CONFIG cmd id 0x01, using subs not available in 0x3B list
  condition: 0xBBB5F800, 0x3B949C00, 0x42133A90
  0x0 - 0 = exec smth,  
setting:
      1 = 0x132 panic,  
  0x18E1F0, sub_4670C (4.70)
      2 = 0x133 panic,
  0x348EC8, sub_44338 (4.70)
      3 = 0x134 panic,
      4 = 0x135 panic,
      else = 0x136 panic)
0xC - exec smth
0x5 - exec smth
0x6 - exec smth
0x10 - panic


====Function Mapping====
Basically are [[HV_Syscalls#HV_Syscalls|hvsc syscalls]] (xoris    r11, r11, 0x8000)
ps2_netemu.self contains a table (with entry_length=8 and entry_number=variable) where are listed the function offsets used by config command 0x01
 
0x80000000 - [[HV_Syscall_Reference#lv1_allocate_memory]]
0x80000001 - [[HV_Syscall_Reference#lv1_write_htab_entry]]
0x80000002 - [[HV_Syscall_Reference#lv1_construct_virtual_address_space]]
0x80000007 - [[HV_Syscall_Reference#lv1_select_virtual_address_space]]
0x80000009 - [[HV_Syscall_Reference#lv1_pause]]
0x8000000F - [[HV_Syscall_Reference#lv1_put_iopte]]
0x80000012 - [[HV_Syscall_Reference#lv1_construct_event_receive_port]]
0x8000001A - [[HV_Syscall_Reference#lv1_detect_pending_interrupts]]
0x8000001B - [[HV_Syscall_Reference#lv1_end_of_interrupt]]
0x8000001C - [[HV_Syscall_Reference#lv1_connect_irq_plug]]
0x80000039 - [[HV_Syscall_Reference#lv1_construct_logical_spe]]
0x8000003D - [[HV_Syscall_Reference#lv1_set_spe_interrupt_mask]]
0x80000042 - [[HV_Syscall_Reference#lv1_clear_spe_interrupt_status]]
0x80000043 - [[HV_Syscall_Reference#lv1_get_spe_interrupt_status]]
0x80000045 - [[HV_Syscall_Reference#lv1_get_logical_ppe_id]]
0x80000049 - [[HV_Syscall_Reference#lv1_set_interrupt_mask]]
0x8000004A - [[HV_Syscall_Reference#lv1_get_logical_partition_id]]
0x8000004E - [[HV_Syscall_Reference#lv1_get_spe_irq_outlet]]
0x8000005B - [[HV_Syscall_Reference#lv1_get_repository_node_value]]
0x8000005F - [[HV_Syscall_Reference#lv1_read_htab_entries]]
0x80000061 - [[HV_Syscall_Reference#lv1_set_vmx_graphics_mode]]
0x80000062 - [[HV_Syscall_Reference#lv1_set_thread_switch_control_register]]
0x80000074 - [[HV_Syscall_Reference#lv1_allocate_io_segment]]
0x80000076 - [[HV_Syscall_Reference#lv1_allocate_ioid]]
0x80000078 - [[HV_Syscall_Reference#lv1_construct_io_irq_outlet]]
0x8000007C - [[HV_Syscall_Reference#lv1_undocumented_function_124]]
0x8000007D - [[HV_Syscall_Reference#lv1_undocumented_function_125]]
0x8000007E - [[HV_Syscall_Reference#lv1_undocumented_function_126]]
0x80000088 - [[HV_Syscall_Reference#lv1_undocumented_function_136]]
0x8000008C - [[HV_Syscall_Reference#lv1_construct_lpm]]
0x8000008D - [[HV_Syscall_Reference#lv1_destruct_lpm]]
0x8000008E - [[HV_Syscall_Reference#lv1_start_lpm]]
0x8000008F - [[HV_Syscall_Reference#lv1_stop_lpm]]
0x80000090 - [[HV_Syscall_Reference#lv1_copy_lpm_trace_buffer]]
0x80000091 - [[HV_Syscall_Reference#lv1_add_lpm_event_bookmark]]
0x80000092 - [[HV_Syscall_Reference#lv1_delete_lpm_event_bookmark]]
0x80000093 - [[HV_Syscall_Reference#lv1_set_lpm_interrupt_mask]]
0x80000094 - [[HV_Syscall_Reference#lv1_get_lpm_interrupt_status]]
0x80000095 - [[HV_Syscall_Reference#lv1_set_lpm_general_control]]
0x80000096 - [[HV_Syscall_Reference#lv1_set_lpm_interval]]
0x80000097 - [[HV_Syscall_Reference#lv1_set_lpm_trigger_control]]
0x80000098 - [[HV_Syscall_Reference#lv1_set_lpm_counter_control]]
0x80000099 - [[HV_Syscall_Reference#lv1_set_lpm_group_control]]
0x8000009A - [[HV_Syscall_Reference#lv1_set_lpm_debug_bus_control]]
0x8000009B - [[HV_Syscall_Reference#lv1_set_lpm_counter]]
0x8000009C - [[HV_Syscall_Reference#lv1_set_lpm_signal]]
0x8000009D - [[HV_Syscall_Reference#lv1_set_lpm_spr_trigger]]
0x800000A3 - [[HV_Syscall_Reference#lv1_write_virtual_uart]]
0x800000A4 - [[HV_Syscall_Reference#lv1_set_virtual_uart_param]]
0x800000A5 - [[HV_Syscall_Reference#lv1_get_virtual_uart_param]]
0x800000A6 - [[HV_Syscall_Reference#lv1_configure_virtual_uart_irq]]
0x800000AA - [[HV_Syscall_Reference#lv1_open_device]]
0x800000AB - [[HV_Syscall_Reference#lv1_close_device]]
0x800000AC - [[HV_Syscall_Reference#lv1_map_device_mmio_region]]
0x800000AE - [[HV_Syscall_Reference#lv1_allocate_device_dma_region]]
0x800000AF - [[HV_Syscall_Reference#lv1_free_device_dma_region]]
0x800000B0 - [[HV_Syscall_Reference#lv1_map_device_dma_region]]
0x800000B1 - [[HV_Syscall_Reference#lv1_unmap_device_dma_region]]
0x800000B2 - [[HV_Syscall_Reference#lv1_read_pci_config]]
0x800000B3 - [[HV_Syscall_Reference#lv1_write_pci_config]]
0x800000C5 - [[HV_Syscall_Reference#lv1_connect_interrupt_event_receive_port]]
0x800000CF - [[HV_Syscall_Reference#lv1_enable_logical_spe]]
0x800000D2 - [[HV_Syscall_Reference#lv1_gpu_open]]
0x800000D4 - [[HV_Syscall_Reference#lv1_gpu_device_map]]
0x800000D6 - [[HV_Syscall_Reference#lv1_gpu_memory_allocate]]
0x800000D9 - [[HV_Syscall_Reference#lv1_gpu_context_allocate]]
0x800000DD - [[HV_Syscall_Reference#lv1_gpu_context_iomap]]
0x800000E1 - [[HV_Syscall_Reference#lv1_gpu_context_attribute]]
0x800000E3 - [[HV_Syscall_Reference#lv1_gpu_context_intr]]
0x800000E4 - [[HV_Syscall_Reference#lv1_gpu_attribute]]
0x800000F5 - [[HV_Syscall_Reference#lv1_storage_read]]
0x800000F6 - [[HV_Syscall_Reference#lv1_storage_write]]
0x800000F9 - [[HV_Syscall_Reference#lv1_storage_get_async_status]]


This table is used to assign a funct_id to a funct_offset. The funct_id is given by the position of the entry in the table, so the first entry in the table is funct_id=0x00, second entry is funct_id=0x01 and so on
=== Cold Fear ===
frequenlty, as if you pressed pause
0x46
0x19


The purpose of this table is to be able use the same funct_id values in the external CONFIG files for netemu, this way even if the func_offset changes in between versions (internally inside the ps2_netemu.self file structure) the funct_id will be the same. The other ps2 emulator types doesnt have this table (doesnt needs it because doesnt uses external CONFIG files)
=== config 0x12 ===
==== type 1 ====
Playground discussion, unsure about clrlslwi  r11, r0, 16,3 result


<pre>
Syphon Filter The Omega Strain
298  00 00 00 00
29C  00 00 00 00
2A0  01 00>02 00< Type1, Count 2
2A4  31 00 99 18 
2A8  32 00 B6 18


*funct_offset_table location by ps2_netemu versions:
**Table v1 (the table contains the same data)
***Firmware:370-374 offset:0x897ED8 length:0x1C8
**Table v2 (the table contains the same data)
***Firmware:400-401 offset:0x8970E8 length:0x1C8
**Table v3 (the table contains the same data)
***Firmware:410-411 offset:0x8971E8 length:0x1C8
***Firmware:420-425 offset:0x8972F8 length:0x1C8
**Table v4
***Firmwares 4.30 up to 4.76 was not tested (if someone wants to add this info do it here)
**Table vX (latest)
***Firmware:478-488 offset:0x8063f8 length:0x1E0


Example from ps2_netemu.self 4.88
type 1: (Syphon Filter The Omega Strain )
<pre>
*0x48  | ptr to 1st value *0x2A4 (0x15F)
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
*0x50  | count of type values


008063F0                          00 00 00 00 00 04 2F 70          ....../p
        (0x18990031 >> 0xC) & 0xFFFF0 = 0x18990
00806400  00 00 00 00 00 04 30 34 00 00 00 00 00 04 47 C0  ......04......GÀ
        (0x18B60032 >> 0xC) & 0xFFFF0 = 0x18B60
00806410  00 00 00 00 00 04 46 E0 00 00 00 00 00 04 33 84  ......Fà......3„
00806420  00 00 00 00 00 04 74 5C 00 00 00 00 00 04 6D 20  ......t\......m
00806430  00 00 00 00 00 04 7C 1C 00 00 00 00 00 04 31 00  ......|.......1.
00806440  00 00 00 00 00 04 31 D8 00 00 00 00 00 04 34 48  ......1Ø......4H
00806450  00 00 00 00 00 04 35 20 00 00 00 00 00 04 45 E8  ......5 ......Eè
00806460  00 00 00 00 00 04 45 0C 00 00 00 00 00 04 44 30  ......E.......D0
00806470  00 00 00 00 00 04 42 54 00 00 00 00 00 04 41 70  ......BT......Ap
00806480  00 00 00 00 00 04 40 8C 00 00 00 00 00 04 60 FC  ......@Œ......`ü
00806490  00 00 00 00 00 04 35 E4 00 00 00 00 00 04 7F C4  ......5ä.......Ä
008064A0  00 00 00 00 00 04 5A 1C 00 00 00 00 00 04 55 90  ......Z.......U.
008064B0  00 00 00 00 00 04 6A DC 00 00 00 00 00 04 5F A8  ......jÜ......_¨
008064C0  00 00 00 00 00 04 7A 88 00 00 00 00 00 04 5C 6C  ......zˆ......\l
008064D0  00 00 00 00 00 04 54 C0 00 00 00 00 00 04 53 F0  ......TÀ......Sð
008064E0  00 00 00 00 00 04 53 20 00 00 00 00 00 04 52 50  ......S ......RP
008064F0  00 00 00 00 00 04 51 80 00 00 00 00 00 04 50 B0  ......Q€......P°
00806500  00 00 00 00 00 04 4F E0 00 00 00 00 00 04 4F 10  ......Oà......O.
00806510  00 00 00 00 00 04 4E 40 00 00 00 00 00 04 4D 70  [email protected]
00806520  00 00 00 00 00 04 4C A0 00 00 00 00 00 04 4B D0  ......L ......KÐ
00806530  00 00 00 00 00 04 4B 00 00 00 00 00 00 04 4A 30  ......K.......J0
00806540  00 00 00 00 00 04 49 60 00 00 00 00 00 04 48 90  ......I`......H.
00806550  00 00 00 00 00 04 66 2C 00 00 00 00 00 04 71 14  ......f,......q.
00806560  00 00 00 00 00 04 6F 9C 00 00 00 00 00 04 6E 24  ......oœ......n$
00806570  00 00 00 00 00 04 59 2C 00 00 00 00 00 04 58 48  ......Y,......XH
00806580  00 00 00 00 00 04 57 64 00 00 00 00 00 04 56 80  ......Wd......V€
00806590  00 00 00 00 00 04 75 60 00 00 00 00 00 00 00 00  ......u`........
008065A0  00 00 00 00 00 04 62 18 00 00 00 00 00 04 36 B4  ......b.......6´
008065B0  00 00 00 00 00 04 7D 28 00 00 00 00 00 04 72 98  ......}(......r˜
008065C0  00 00 00 00 00 04 76 74 00 00 00 00 00 04 6B D4  ......vt......kÔ
008065D0  00 00 00 00 00 04 3F AC                          ......?¬
</pre>


{| class="wikitable" style="float:left; font-size:xx-small; line-height:100%; margin:5px"
store value in [0x18990 + ??? ]  
! colspan="5" | netemu 0x01 !! gxemu 0x00 !! softemu 0x00
|-
seg017:0000000000198498 next_value:                            # CODE XREF: read_id0x12_type_1+120�j
! [[3.70_CEX|3.70]]~{{latestPS3}} !! [[3.70_CEX|3.70]]~[[3.74_CEX|3.74]] !! [[4.00_CEX|4.00]]~[[4.01_CEX|4.01]] !! [[4.10_CEX|4.10]]~[[4.25_CEX|4.25]] !! [[4.78_CEX|4.78]]~[[4.88_CEX|4.88]] !! [[4.78_CEX|4.78]]~[[4.82_CEX|4.82]] !! [[3.72_CEX|3.72]]~[[4.01_CEX|4.01]]
seg017:0000000000198498                lwz      r0, 0(r10)    # -> 0x18990031
|-
seg017:000000000019849C                addi      r8, r8, 1    # counter
! funct_id !! funct_offset !! funct_offset !! funct_offset !! funct_offset !! funct_offset !! funct_offset
seg017:00000000001984A0                ld        r29, 0(r31)
|-
seg017:00000000001984A4                addi      r10, r10, 4  # ptr to next value
| 0x00 || 0x46720 || 0x42E00 || 0x42EB8 || 0x42F70 || 0x36B40 || 0x2FEF0
seg017:00000000001984A8                rlwinm    r28, r0, 20,12,27 # r28 = (r0 >> 12) & 0xFFFF0 = (0x18990031 >> 12) & 0xFFFF0 = 0x18990
|-
seg017:00000000001984AC                clrlslwi  r11, r0, 16,3 # r11 = 0x0031 << 3 = 0x188
| 0x01 || 0x42DB0 || 0x42EC4 || 0x42F7C || 0x43034 || 0x35FB0 || 0x31E38
seg017:00000000001984B0                add      r26, r28, r29 # r26 = 0x18990 + ??
|-
seg017:00000000001984B4                stw      r11, 4(r26)  # store 0x62000? or 0x188? in r26
| 0x02 || 0x44394 || 0x4456C || 0x44560 || 0x447C0 || 0x34068 || 0x30220
seg017:00000000001984B8                lwz      r5, 0x50(r31) # count
|-
seg017:00000000001984BC                cmplw    cr6, r5, r8
| 0x03 || 0x442B4 || 0x4448C || 0x44480 || 0x446E0 || 0x34144 || 0x302FC
seg017:00000000001984C0                bgt      cr6, next_value
|-
</pre>
| 0x04 || 0x43100 || 0x43214 || 0x432CC || 0x43384 || 0x33F98 ? || 0x30150
 
|-
==== type 2 ====
| 0x05 || 0x46A90 || 0x46DB4 || 0x47184 || 0x4745C || 0x36CF8 || 0x31D08
 
|-
Fix on Interpretation?
| 0x06 || 0x46D64 || 0x46AE0 || 0x46934 || 0x46D20 || 0x34224 || 0x303DC
 
|-
<pre>
| 0x07 || 0x47134 || 0x47154 || 0x47524 || 0x47C1C || 0x37850 ||
Primal
|-
298  00 00 00 04
| 0x08 || 0x42E7C || 0x42F90 || 0x43048 || 0x43100 || 0x33DFC<!--0x33E00 ? (old)--> || 0x2FFB4
29C  00 00 00 00 
|-
2A0  02 00>03 00< Type 2, Count 3
| 0x09 || 0x42F54 || 0x43068 || 0x43120 || 0x431D8 || 0x36C04 || 0x31C14
2A4  5F 01 00 00
|-
2A8  8D BD 6F 2C
| 0x0A || 0x431C4 || 0x432D8 || 0x43390 || 0x43448 || 0x36EF0 || 0x31FCC
2AC  67 03 00 00 
|-
2B0  02 00>03 00< Type 2, Count 3
| 0x0B || 0x4329C || 0x433B0 || 0x43468 || 0x43520 || 0x34354 ||
2B4  6B 01 00 00
|-
2B8  31 35 70 E9
| 0x0C || 0x441BC || 0x44394 || 0x44388 || 0x445E8 || 0x34424 || 0x30518
2BC  72 03 00 00 
|-
2C0  03 00>02 00< Type 3, Count 2
| 0x0D || 0x440E0 || 0x442B8 || 0x442AC || 0x4450C || 0x34520 ||
2C4  60 9B 39 10
|-
2C8  18 9C 39 10
| 0x0E || 0x44004 || 0x441DC || 0x441D0 || 0x44430 || 0x345FC || 0x306F0
2CC
|-
| 0x0F || 0x43E28 || 0x44000 || 0x43FF4 || 0x44254 || 0x365F0 || 0x31124
|-
| 0x10 || 0x43D44 || 0x43F1C || 0x43F10 || 0x44170 || 0x36510 || 0x31044
|-
| 0x11 || 0x43C64 || 0x43E3C || 0x43E30 || 0x4408C || 0x36430 || 0x30F64
|-
| 0x12 || 0x45CD4 || 0x45EAC || 0x46EA0 || 0x460FC || 0x34DD0<!--0x366C4 ? (old)--> || 0x311F8<!--0x30C28 ? (old)-->
|-
| 0x13 || 0x469C0 || 0x43474 || 0x46864 || 0x435E4 || 0x366C4 || 0x30C28
|-
| 0x14 || 0x4777C || 0x4779C || 0x478CC || 0x47FC4 || 0x34EDC || 0x31304
|-
| 0x15 || 0x455F0 || 0x457C8 || 0x457BC || 0x45A1C || 0x3795C || 0x327B4
|-
| 0x16 || 0x45164 || 0x4533C || 0x45330 || 0x45590 || 0x3521C || 0x31580
|-
| 0x17 || 0x468C8 || 0x469DC || 0x4676C || 0x46ADC || 0x347D0 || 0x308C4
|-
| 0x18 || 0x45B80 || 0x45D58 || 0x45D48 || 0x45FA8 || 0x35300<!--0x373FC ? (old)--> || 0x31664
|-
| 0x19 || 0x4706C || 0x46FC0 || 0x4745C || 0x47A88 || 0x36E28 || 0x31F04
|-
| 0x1A || 0x45844 || 0x45A1C || 0x45A0C || 0x45C6C || 0x37614 || 0x325B4
|}


{| class="wikitable" style="float:left; font-size:xx-small; line-height:100%; margin:5px"
type 2:
! colspan="5" | netemu 0x01 !! gxemu 0x00 !! softemu 0x00
*0x20C | counter
|-
*0x210 | 1st value: 0x15F      -> only gets compared, if passed check 2nd value
! [[3.70_CEX|3.70]]~{{latestPS3}} !! [[3.70_CEX|3.70]]~[[3.74_CEX|3.74]] !! [[4.00_CEX|4.00]]~[[4.01_CEX|4.01]] !! [[4.10_CEX|4.10]]~[[4.25_CEX|4.25]] !! [[4.78_CEX|4.78]]~[[4.88_CEX|4.88]] !! [[4.78_CEX|4.78]]~[[4.82_CEX|4.82]] !! [[3.72_CEX|3.72]]~[[4.01_CEX|4.01]]
*0x214 | 2nd value: 0x2C6FBD8D -> only gets compared, if passed use *0x218 + *0x21C
|-
*0x218 | 1 ( = count - 2)
! funct_id !! funct_offset !! funct_offset !! funct_offset !! funct_offset !! funct_offset !! funct_offset
        *0x21C | ptr to 3rd value *0x2AC (0x367)
|-{{cellcolors|#ddddff}}
| 0x1B || 0x45094 || 0x4526C || 0x45260 || 0x454C0 || 0x35434 || 0x31798
|-{{cellcolors|#ddddff}}
| 0x1C || 0x44FC4 || 0x4519C || 0x45190 || 0x453F0 || 0x354F8 || 0x30A88
|-{{cellcolors|#bbbbff}}
| 0x1D || 0x44EF4 || 0x450CC || 0x450C0 || 0x45320 || 0x355BC ||
|-{{cellcolors|#bbbbff}}
| 0x1E || 0x44E24 || 0x44FFC || 0x44FF0 || 0x45250 || 0x35680 ||
|-{{cellcolors|#ddddff}}
| 0x1F || 0x44D54 || 0x44F2C || 0x44F20 || 0x45180 || 0x35744 ||
|-{{cellcolors|#ddddff}}
| 0x20 || 0x44C84 || 0x44E5C || 0x44E50 || 0x450B0 || 0x35808 ||
|-{{cellcolors|#bbbbff}}
| 0x21 || 0x44BB4 || 0x44D8C || 0x44D80 || 0x44FE0 || 0x358CC ||
|-{{cellcolors|#bbbbff}}
| 0x22 || 0x44AE4 || 0x44CBC || 0x44CB0 || 0x44F10 || 0x35990 ||
|-{{cellcolors|#ddddff}}
| 0x23 || 0x44A14 || 0x44BEC || 0x44BE0 || 0x44E40 || 0x35A54 ||
|-{{cellcolors|#ddddff}}
| 0x24 || 0x44944 || 0x44B1C || 0x44B10 || 0x44D70 || 0x35B18 ||
|-{{cellcolors|#bbbbff}}
| 0x25 || 0x44874 || 0x44A4C || 0x44A40 || 0x44CA0 || 0x35BDC ||
|-{{cellcolors|#bbbbff}}
| 0x26 || 0x447A4 || 0x4497C || 0x44970 || 0x44BD0 || 0x35CA0 ||
|-{{cellcolors|#ddddff}}
| 0x27 || 0x446D4 || 0x448AC || 0x448A0 || 0x44B00 || 0x35D64 ||
|-{{cellcolors|#ddddff}}
| 0x28 || 0x44604 || 0x447DC || 0x447D0 || 0x44A30 || 0x35E28 ||
|-{{cellcolors|#bbbbff}}
| 0x29 || 0x44534 || 0x4470C || 0x44700 || 0x44960 || 0x35EEC ||
|-{{cellcolors|#bbbbff}}
| 0x2A || 0x44464 || 0x4463C || 0x44630 || 0x44890 || 0x35158 ||
|-
| 0x2B || 0x467E4 || 0x463DC || 0x46688 || 0x4662C || 0x34994 ||
|-
| 0x2C || 0x465D0 || 0x464B4 || 0x46D28 || 0x47114 || 0x36FC8 ||
|-
| 0x2D || 0x47384 || 0x473A4 || 0x46BB0 || 0x46F9C || 0x3607C ||
|-
| 0x2E || 0x47234 || 0x47254 || 0x46A38 || 0x46E24 ||  ||
|-
| 0x2F || 0x45500 || 0x456D8 || 0x456CC || 0x4592C || 0x34A70 ||
|-
| 0x30 || 0x4541C || 0x455F4 || 0x455E8 || 0x45848 || 0x34B48 ||
|-
| 0x31 || 0x45338 || 0x45510 || 0x45504 || 0x45764 || 0x34C20 ||
|-
| 0x32 || 0x45254 || 0x4542C || 0x45420 || 0x45680 || 0x34CF8 ||
|-
| 0x33 || 0x46E74 || 0x46EB8 || 0x47288 || 0x47560 || 0x37714 ||
|-
| 0x34 || {{cellcolors|#CC5555}} 0x00000 || {{cellcolors|#CC5555}} 0x00000 || {{cellcolors|#CC5555}} 0x00000 || {{cellcolors|#CC5555}} 0x00000 ||  ||
|-
| 0x35 || 0x45DF0 || 0x45FC8 || 0x46274 || 0x46218 ||  ||
|-
| 0x36 || 0x4336C || 0x43544 || 0x43538 || 0x436B4 ||  ||
|-
| 0x37 || 0x474E0 || 0x47500 || 0x47630 || 0x47D28 ||  ||
|-
| 0x38 || 0x46BA0 || 0x46BF0 || 0x46FC0 || 0x47298 ||  ||
|-
| 0x39 || {{no}} || {{no}} || {{no}} || 0x47674 ||  ||
|-
| 0x3A || {{no}} || {{no}} || {{no}} || 0x46BD4 ||  ||
|-
| 0x3B || {{no}} || {{no}} || {{no}} || 0x43FAC ||  ||
|}{{clear}}


====Function 0x0D====
</pre>
What is the purpose of this function? Could it be used as a potential fix for the various DMA issues (similar to the EE timing hack in PCSX2)? I may be wrong, but I think the majority of netemu's emulation problems are caused by DMA issues, which are unfortunately hard to fix.
* This hack allow to run all spe cores while doing nothing on ppe side. Is like giving spe more time (100 msec). This can be used to fix some timing issues here or there. But if you know game offset that you want to use it, you probably can already fix it in different way. Also this probably won't affect "emulation cycles", so is not like pcsx2 EE timing hack. About pcsx2 EE timing hack.. This is really stupid hack if you ask me. Hack make all events listed [[https://github.com/PCSX2/pcsx2/blob/5bdec2f532e94065655032eb6cf7f7715c075e3b/pcsx2/R5900.h#L403 here]] to take 8 cycles. No matter that really it was 1, or 2000 cycles, it will make all of that 8 cycles. Idea of that hack is not bad itself, but it is terrible implementation that make a lot of things random. I think that ps2 emu on ps4 do this much better, as you can select only one event, and set cycles for it. While on pcsx2 if you want DMAC_FROM_IPU to take 8 cycles, you also make ALL OTHER events to take 8 cycles. I don't know how lucky that hack is to not break other stuff. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:47, 12 March 2022 (UTC)


====Function 0x12====
==== type 3 ====
The 0x4FC500 EE memory offset is not hardcoded, isn't it? Since this hook fixes other Traveller's Tales games, like Wrath of Cortex, the memory offset should be taken from the opcode itself (if I remember correctly, it is "load word from global pointer").--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 11:48, 2 October 2022 (UTC)
*Fun(?)fact, it is hardcoded.
oris r0, r0, 0x204F
ori r0, r0, 0xC500.
But i think i know what happen. hook land here (on finding nemo):
lw          $s0, dword_4FC500
bnez        $s0, loc_187568
Notice that config beside 0x4FC500, set $s0 to zero. And here is another fun fact. At least on Nemo this is only place that read from that address. Making patch to 4FC500 meaningless, and not really needed. Assuming that other game doesn't use that exact address, this config is just additionally corrupting some random thing at 0x4FC500. I think that is probably the case also for other Nemo games. To be honest that config can be replaced to just nop that branch there and should do exactly the same thing. ¯\_(ツ)_/¯ --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 12:23, 2 October 2022 (UTC)
** Hmm, or not exactly the same thing as it also check that COP0 and DMAC stuff. Anyway, i think that patch to EE address do nothing there.
*** NET config for Finding Nemo (SLES-51755) seems to have a 0x42 replacement for 0x01 hook, including the COP0 and D_STAT checks you have mentioned.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 13:33, 2 October 2022 (UTC)


====Function 0x35====
<pre>
''Ninkyouden: Toseinin Ichidaiki'' (SLPM-66274) is using command 0x1 with function 0x35 at 0x13ED94...it seems like its executed at the VSync function of the game. This hook is also not in gxemu judging from the table above. No immediate change with or without the command that I can tell. Any idea on what this is doing?
Example Primal
* Function check some bits in GIF, but i don't know what exactly (offset 0x300/0x310 in fe SPU). When bits are 0 command end. When bits are not 0, PPU side of PS3 sleeps 256 cycles, and then check again fe SPU. That loop won't ends unless bits are 0. Just small tip about hooks that are close to VSync. This is not always related to VSync per se. Of course can be, but don't really need to. I mean, if you want to run hook in predictable place, and with similar time steps. VSync is where you hook game code then. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 05:31, 22 August 2022 (UTC)
*0x11B4| counter
** Yes, I first thought it would be VSync related, but I figured it could be something executed at every VSync like you said. Thanks for checking in on this hook. I am thinking of testing games like Tenchu: Wrath of Heaven and Street Fighter EX3 with this hook to see if anything changes (at least Tenchu's issue is directly related to GIF, SFEX3 not too sure). --[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 00:54, 23 August 2022 (UTC)
*0x11B8| -1 -> 0x399B60?  
*0x11BC| 0 -> 0x399B60?
*0x11C0| ptr to *0x2C4 values
*0x11C4| count (2)


===ps2_netemu command 0x5===
r11 = r0 & 0xFFFFFFF = 0x10399B60 & 0xFFFFFFF = 0x399B60
The external config format used by ps2_netemu.self doesnt supports command ID 0x5. But this same command with a different ID (0x4) was used by this game configs embedded inside ps2_gxemu.self: Grand Theft Auto: Liberty City Stories (SLES-54135, SLES-54136, SLUS-21423), Grand Theft Auto: Vice City Stories (SLES-54622, SLES-54623, SLUS-21590), Hunter: The Reckoning Wayward (SLES-51823), Onimusha: Dawn of Dreams (SLPM-66275), Shinseiki Evangelion: Ayanami Ikusei Keikaku with Asuka Hokan Keikaku (SLPM-65340), Tekken Tag Tournament (SLUS-20001). The reason why this command is not supported in the external config files is because the related emulator code is enabled permanently in ps2_netemu.self for all games
0x10399C18 & 0xFFFFFFF = 0x399C18


This command patches EEDMA SPE program during emulator init (0x1F77C in latest netemu) to set different handling for DIRECT/DIRECTHL VIF1 commands. Weird solution, wasn't better to just change pointers in spe program instead of patching that on init?
r3 = r31 >> 28 = 0x10399B60 >> 0x1C = 1
* Is there any way to patch the emulator to prevent that command to apply? I wonder if it is affecting the behaviour of some games.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 20:00, 11 March 2022 (UTC)
a check if 1,2
** Yeah, you can patch it on decrypted emu.
</pre>
Find
91 48 00 00 90 09 00 1C 90 09 00 10 90 09 00 14 90 09 00 18 90 0b 00 1C 90 0b 00 10 90 0b 00 14 90 0b 00 18
Replace
91 48 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00 60 00 00 00


And find
==== type 4 ====
E9 42 8C 20 3C 00 00 01 60 00 72 80 E9 2A 00 00
replace
4E 80 00 20 3C 00 00 01 60 00 72 80 E9 2A 00 00


Now you need to encrypt it with scetool, using original emu as a template.
        cmpwi    cr7, r0, 4
scetool --template orig_ps2_netemu.self --sce-type=SELF --compress-data=TRUE --encrypt ps2_netemu.elf ps2_netemu.self
        bne      cr7, panic_dword_1967BC
Remember to delete netemu from flash, then copy new one. Overwriting can fail as there is not enough space on dev_flash. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:35, 12 March 2022 (UTC)
        srwi      r9, r6, 1    # r9 = r6 >> 1 = count >> 1
        addi      r11, r4, 4
        stw      r9, 0x1238(r31) save count>>1
        std      r11, 0x1240(r31) save ptr to table values start
---big handler, different register settings?---


===ps2_netemu command 0x0B===
=== PS2 Memory and Hardware Mapped Registers Layout ===
 
-----------------------------------------------
SRS:Street Racing Syndicate - sector to patch: 3021/1392496 (1.03) or 1402736 (2.00), offset correction: no, PCSX2 log:
PCSX2
CDRead: Reading Sector 0003021 (008 Blocks of Size 2048) at Speed=4x(CAV) Spindle=83
Mapping host memory for virtual systems...
WRC: Rally Evolved - sector to patch: 3235/1792256 (1.01), offset correction: no, PCSX2 log:
EE Main Memory                  @ 0x20000000 -> 0x22884000 [40mb]
  CDRead: Reading Sector 0003235 (008 Blocks of Size 2048) at Speed=4x(CAV) Spindle=83
IOP Main Memory (2mb)           @ 0x24000000 -> 0x24211000 [2mb]
Notice the CDRead command instead of DvdRead.
VU0/1 on-chip memory            @ 0x28000000 -> 0x2800A000 [40kb]
* Not sure this is the case here. But PCSX2 have bug in fastboot, where it always fallback to CDRead for few first reads. To confirm you can launch game with fastboot disabled, pcsx2 now should read those sectors with proper mode. At the second hand.. Maybe that's what happen on PS3? Probably no, as far as i know netemu bios perform something similar to fullboot. But maybe, sony can break unbreakable, and this actually seems to be reasonable explanation. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 05:18, 22 August 2022 (UTC)
  Reserving memory for recompilers...
** That is how it does look like on the newest PCSX2 build at the moment of posting it. It does use a CDRead for few reads after loading an ELF file, even in the full boot mode. --[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 17:27, 22 August 2022 (UTC)
SuperVU0 Recompiler Cache        @ 0x0E800000 -> 0x0F000000 [8mb]
Emulator does panic itself, when two separate 0x0B commands are used.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 20:25, 15 November 2022 (UTC)
SuperVU1 Recompiler Cache        @ 0x0F000000 -> 0x0F800000 [8mb]
 
Micro VU0 Recompiler Cache      @ 0x3C000000 -> 0x40000000 [64mb]
===ps2_netemu command 0x0C===
Micro VU1 Recompiler Cache      @ 0x40000000 -> 0x44000000 [64mb]
 
(thread:MTVU) Calling pthread_create...
These pairs of parameters: 0x0001 and 0x0400; 0x0001 and 0x0800; 0x0001 and 0x0180 fix few missing sound effects in the Klonoa 2. The side effect is slightly longer loading times in general. This game is known for its various audio buffer issues related to the CDVD speed.
R5900-32 Recompiler Cache        @ 0x30000000 -> 0x34000000 [64mb]
* I actually suspected this can be some delay for reads, but default value is (1, 0x1000) so doesn't really fit for delay. Since Shadowman 2 use it, and have known CD issue. Testing Shadowman2 without config can be interesting, if i'm right there will be a lot of broken textures right after you take control of main character. With broken Shadowman2 it will be easy to know that lower values are "better" or higher values are "better". That should help to understand what's going on. Assuming that SM2 really break without config... --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 19:10, 3 March 2022 (UTC)
R3000A Recompiler Cache          @ 0x34000000 -> 0x36000000 [32mb]
** Tested Shadowman with and without config. No texture corruption either way, but it seems like the config helps with frame rate issues maybe caused by streaming in contents from the disc? Either that or placebo. --[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 02:39, 4 March 2022 (UTC)
VIF0 Unpack Recompiler Cache    @ 0x36000000 -> 0x36800000 [8mb]
*** Well that's "unfortunate" because Shadowman2 would be perfect test case here. I noticed that Shadowma2 have hardcoded bios settings "CDVD_READ_DELAY", so maybe is handled there. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 19:11, 4 March 2022 (UTC)
VIF1 Unpack Recompiler Cache    @ 0x38000000 -> 0x38800000 [8mb]
 
It seems like this command can further improve FMVs that still have stuttering issues with command 0x21 enabled. The Fear's opening FMVs are heavily improved with command 0x21 set at 1, but there is still some video slowdown and audio stuttering and popping remaining. With the addition of command 0x0C set to 0x1 and 0x400, the slowdown and stutter is completely fixed. I have only tested 0x400 as a value so far.
R5900 RAM copy                  @ 0x11C20000 -> 0x13C20000 [32mb]
 
R5900 RAM LUT                    @ 0x13C20000 -> 0x16060000 [36mb]
The ingame FMVs with the graphic overlay are still stuttering heavily, though, and I am still unsure why. It seems like the shorter FMVs run fine, and the longer they are they more they have slowdown/stutter. This only applies to the "ingame" FMVs and not the opening ones.
 
RAM Sizes - Overview
I did some work on it, and it seems to modify read speed. Higher values should give faster read speed. Eventually higher values will give more frequent event checks, but read speed modifier seems to be more probable now when we know default values. To get faster read speed we should use (1, x > 0x400) for CD, and (1, x > 0x1000) for DVD. At this point Shadowman 2 is good test candidate again, just with some really high value. All configs from GX emu looks like they slowing down reads, because values for DVD are below 0x1000, Shadowman2 without config doesn't change anything because this config use default value... Burnout 3 is interesting here, only config that seems to use 0 (yolo read speed) option. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 22:24, 3 July 2023 (CEST) <br>
--------------------
  void MECHA_on_state_3(__int64* mecha)
EE  - 32 MB
  {
GS  -  4 MB
  ReadSectorSize = *(mecha + 0x70);
IOP -  2 MB
  if ( !ReadSectorSize )
SPU -  2 MB 
    panic(1u);
   
Logical Address Range Physical Address Range Description Size
  do
--------------------- ---------------------- ----------- -----
    current_tb = get_current_timebase()
0x80000000-0x800FFFFF 0x00000000-0x000FFFFF EE Kernel   1 MB
  while ( !current_tb );
0x00100000-0x01FFFFFF 0x00100000-0x01FFFFFF EE RAM (Cached) 31 MB
 
0x20100000-0x21FFFFFF 0x00100000-0x01FFFFFF EE RAM (Uncached) 31 MB
  readed_sectors_count = readed_size_in_bytes / ReadSectorSize;
0x30100000-0x31FFFFFF 0x00100000-0x01FFFFFF EE RAM (Uncached&accelerated) 31 MB
  readed_sectors_count_mul_by_79800000 = 79800000LL * readed_sectors_count
0x10000000-0x11FFFFFF 0x10000000-0x11FFFFFF EE Registers (uncached) 32 MB
  tb_for_seek_and_read = *(mecha + 0x18);
0x12000000-0x13FFFFFF 0x12000000-0x13FFFFFF GS Registers (uncached) 32 MB
  skip = current_tb - tb_for_seek_and_read >= readed_sectors_count_mul_by_79800000 / val_from_cmd_0x0C_1)
0x1FC00000-0x1FFFFFFF 0x1FC00000-0x1FFFFFFF? Boot ROM0 (uncached)   4 MB
 
0x9FC00000-0x9FFFFFFF 0x1FC00000-0x1FFFFFFF? Boot ROM09 (cached)   4 MB
  if ( cmd_0x0C_0 != 1 || val_from_cmd_0x0C_1 == 0 || skip )
0xBFC00000-0xBFFFFFFF 0x1FC00000-0x1FFFFFFF? Boot ROM0b (uncached)   4 MB
  {
0xBE000000-0xBE040000 0x1E000000-0x1E03FFFF? Boot ROM1 256 KB
    if ( *(mecha + 0xD4) <= BytesToRead && !*(mecha + 0xE4) )
0xBE400000-0xBE440000 0x1E400000-0x1E43FFFF? Boot ROM2 256 KB
    {
0xBC000000-0xBC1FFFFF 0x1C000000-0x1C1FFFFF? IOP RAM   2 MB
      *(mecha + 0xD4) = readed_size_in_bytes;
0x70000000-0x70003FFF ---------------------- Scratch Pad 16 KB 
      *mecha_state = 4; // Reading done here. Going to next step.
      return;
Kernel empty and unused areas (NB: On non-modded consoles)
    }
----------------------------------------------------------
    panic(1u);
Area Logical Address Range Physical Address Range Size
  }
---- --------------------- ---------------------- ----
  set_scheduler(
#1 0x80030000-0x80074FFF 0x00030000-0x00074FFF 282624 Bytes
    5uLL,                                                                              // 5 - CDVD event
#2 0x80078250-0x8007FFFF 0x00078250-0x0007FFFF 32176 Bytes
    tb_for_seek_and_read + readed_sectors_count_mul_by_79800000 / val_from_cmd_0x0C_1, // When
    &syscall8_200,                                                                      // Event Handler.
RAM Mirror Modes Logical Address Range Physical Address Range Size
    0LL);                                                                              // unk
---------------- --------------------- ---------------------- ----
  }
Cached 0x00100000-0x01FFFFFF 0x00100000-0x01FFFFFF 31 MB
 
Uncached 0x20100000-0x21FFFFFF 0x00100000-0x01FFFFFF 31 MB
* Netemu does crash when the first param is set to 0x2.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 21:03, 7 July 2023 (CEST)
Uncached&accelerated 0x30100000-0x31FFFFFF 0x00100000-0x01FFFFFF 31 MB
** No idea why, function that check config compare to 2 and panic if greater than. So '''2''' is accepted at least there. This config is used in 4 places. All of them use next part of config only if this one is '''1'''. 3 places check explicitly for '''1''', one place check for '''0'''. Setting '''2''' is weird from code point of view because it's almost like 0, but allow code to do one check in read function, and to be honest this doesn't look like intentional behavior because similar check is performed earlier in previous N command state, and there is handled properly including setting 1F402006 to error code instead of panic. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 22:31, 7 July 2023 (CEST)
 
Operating Modes Logical Address Range Physical Address Range Size
===ps2_netemu command 0x12===
--------------- --------------------- ---------------------- ----
 
USEG 0x00000000-0x01FFFFFF 0x00000000-0x01FFFFFF 32 MB
====type 1====
KSEG0 0x80000000-0x81FFFFFF 0x00000000-0x01FFFFFF 32 MB
Playground discussion, unsure about clrlslwi r11, r0, 16,3 result
KSEG1 0xA0000000-0xA1FFFFFF 0x00000000-0x01FFFFFF 32 MB
 
<pre>
Hardware Mapped Registers
  Syphon Filter The Omega Strain
-------------------------
  298 00 00 00 00
  29C 00 00 00 00
COUNTERS' REGISTERS
  2A0 01 00>02 00< Type1, Count 2
-------------------
  2A4 31 00 99 18  
10000000 T0_COUNT Timer Count
  2A8 32 00 B6 18
10000010 T0_MODE Timer Mode
 
10000020 T0_COMP Timer Compare value
 
10000030 T0_HOLD Timer Pause
  type 1: (Syphon Filter The Omega Strain )
 
*0x48 | ptr to 1st value *0x2A4 (0x15F)
10000800 T1_COUNT Timer Count
*0x50 | count of type values
10000810 T1_MODE Timer Mode
10000820 T1_COMP Timer Compare value
10000830 T1_HOLD Timer Pause
10001000 T2_COUNT Timer Count
10001010 T2_MODE Timer Mode
10001020 T2_COMP Timer Compare value
10001810 T3_COUNT Timer Count
10001820 T3_MODE Timer Mode
10001830 T3_COMP Timer Compare value
IPU REGISTERS (MPEG2 DECODER)
-----------------------------
10002000 IPU_CMD
10002010 IPU_CTRL
10002020 IPU_BP
10002030 IPU_TOP
GIF REGISTERS
-------------
10003000 GIF_CTRL
10003010 GIF_MODE
10003020 GIF_STAT
10003040 GIF_TAG0
10003050 GIF_TAG1
10003060 GIF_TAG2
10003070 GIF_TAG3
10003080 GIF_CNT
10003090 GIF_P3CNT
100030a0 GIF_P3TAG
VIF0 REGISTERS
--------------
10003800 VIF0_STAT VIF0 Status
10003810 VIF0_FBRST
10003820 VIF0_ERR
10003830 VIF0_MARK
10003840 VIF0_CYCLE
10003850 VIF0_MODE
10003860 VIF0_NUM
10003870 VIF0_MASK
10003880 VIF0_CODE
10003890 VIF0_ITOPS
100038d0 VIF0_ITOP
10003900 VIF0_R0
10003910 VIF0_R1
10003920 VIF0_R2
10003930 VIF0_R3
10003940 VIF0_C0
10003950 VIF0_C1
10003960 VIF0_C2
10003970 VIF0_C3
VIF1 REGISTERS
--------------
10003c00 VIF1_STAT
10003c10 VIF1_FBRST
10003c20 VIF1_ERR
10003c30 VIF1_MARK
10003c40 VIF1_CYCLE
10003c50 VIF1_MODE
10003c60 VIF1_NUM
10003c70 VIF1_MASK
10003c80 VIF1_CODE
10003c90 VIF1_ITOPS
10003ca0 VIF1_BASE
10003cb0 VIF1_OFST
10003cc0 VIF1_TOPS
10003cd0 VIF1_ITOP
10003ce0 VIF1_TOP
10003d00 VIF1_R0
10003d10 VIF1_R1
10003d20 VIF1_R2
10003d30 VIF1_R3
10003d40 VIF1_C0
10003d50 VIF1_C1
10003d60 VIF1_C2
10003d70 VIF1_C3
FIFO
----
10004000 VIF0_FIFO(write)
10005000 VIF1_FIFO(read/write)  
   
  10006000 GIF_FIFO0
10006010 GIF_FIFO1
10006020 GIF_FIFO2
10007000 IPU_out_FIFO(read)
10007010 IPU_in_FIFO(write)
DMA CH0 REGISTERS (Linked to VIF0)
----------------------------------
10008000 D0_CHCR DMA-0 Channel Control
10008010 D0_MADR Memory Address
10008020 D0_SIZE Transfer Size (they call it D0_QWC)
10008030 D0_TAG DMA Tag (they call it D0_TADR)
10008040 D0_??LO they call it D0_ASR0
10008050 D0_??HI they call it D0_ASR1
DMA CH1 REGISTERS (Linked to VIF1)
----------------------------------
10009000 D1_CHCR DMA-1 Channel Control
10009010 D1_MADR Memory Address
10009020 D1_SIZE Transfer Size (they call it D1_QWC)
10009030 D1_TAG DMA Tag (they call it D1_TADR)
10009040 D1_??LO they call it D1_ASR0
10009050 D1_??HI they call it D1_ASR1
DMA CH2 REGISTERS (Linked to GIF)
---------------------------------
1000A000 D2_CHCR DMA-2 Channel Control
1000A010 D2_MADR Memory Address
1000A020 D2_SIZE Transfer Size (they call it D2_QWC)
1000A030 D2_TAG DMA Tag (they call it D2_TADR)
1000A040 D2_??LO they call it D2_ASR0
1000A050 D2_??HI they call it D2_ASR1
1000A080 D2_SADR
DMA CH3 REGISTERS (Linked to IPU (FROM???))
--------------------------------------------
1000B000 D3_CHCR DMA-3 Channel Control
1000B010 D3_MADR Memory Address
1000B020 D3_QWC Transfer Size
DMA CH4 REGISTERS (Linked to IPU (TO???))
-----------------------------------------
1000B400 D4_CHCR DMA-4 Channel Control
1000B410 D4_MADR Memory Address
1000B420 D4_QWC Transfer Size
1000B430 D4_TADR DMA Tag
DMA CH5 REGISTERS (Linked to SIF0)
----------------------------------
1000C000 D5_CHCR DMA-4 Channel Control
1000C010 D5_MADR Memory Address
1000C020 D5_QWC Transfer Size
DMA CH6 REGISTERS (Linked to SIF1)
----------------------------------
  1000C400 D6_CHCR DMA-6 Channel Control
1000C410 D6_MADR Memory Address
1000C420 D6_QWC Transfer Size
  1000C430 D6_TADR DMA Tag
DMA CH7 REGISTERS (Linked to SIF2)
----------------------------------
1000C800 D7_CHCR DMA-7 Channel Control
1000C810 D7_MADR Memory Address
1000C820 D7_QWC Transfer Size
DMA CH8 REGISTERS (Linked to SPR  (form SCRATCH PAD to RAM???)
--------------------------------------------------------------
1000D000 D8_CHCR DMA-8 Channel Control
1000D010 D8_MADR Memory Address
1000D020 D8_QWC Transfer Size
1000D080 D8_MCR  ???
DMA CH9 REGISTERS (Linked to SPR  (form RAM to SCRATCH PAD???)
--------------------------------------------------------------
1000D400 D9_CHCR DMA-9 Channel Control
1000D410 D9_MADR Memory Address
1000D420 D9_QWC Transfer Size
1000D430 D9_TADR DMA Tag
1000D480 D9_MCR? ???
DMA CONTROL REGISTERS
---------------------
1000E000 D_CTRL                  DMA Control
1000E010 D_STAT DMA Status
1000E020 D_PCR
1000E030 D_SQWC
1000E040 D_RBSR
1000E050 D_RBOR
1000E060 D_STADR
1000F000 INTC_STAT
1000F010 INTC_MASK
1000F100
1000F120
1000F130 STD-OUT STATUS???
1000F140
1000F150
1000F180 STD-OUT DATA???
1000F230 SBUS_SMFLG
1000F410
1000F430
1000F440
1000F480
1000F490
1000F500
1000f520 D_ENABLEW
1000f590 D_ENABLER
VU MAPPED MEMORY REGISTERS
--------------------------
11000000 VU0 PROGRAM MEMORY Program Memory (4K ROM)
11001000 VU0 MEMORY Memory (4K ROM)
11008000 VU1 PROGAM MEMORY VU1 Program Memory (16K ROM)
1100C000 VU1 MEMORY VU1 Memory (16K ROM)
GS
--
12000000 GS_PMODE
12000010 GS_SMODE1
12000020 GS_SMODE2
12000030 GS_SRFSH
12000040 GS_SYNCH1
12000050 GS_SYNCH2
12000060 GS_SYNCV
12000070 GS_DISPFB1
12000080 GS_DISPLAY1
12000090 GS_DISPFB2
120000a0 GS_DISPLAY2
120000b0 GS_EXTBUF
120000c0 GS_EXTDATA
120000d0 GS_EXTWRITE
120000e0 GS_BGCOLOR
12001000 GS_CSR
12001010 GS_IMR
12001040 GS_BUSDIR
12001080 GS_SIGLBLID
Scratch Pad RAM Address Range
  -----------------------------
0x70000000-0x70003FFF
  ROM BIOS Mirror Address Range Logical Address Range Physical Address Range
  ----------------------------- --------------------- ----------------------
  Uncached 0x1FC00000-0x1FFFFFFF 0x1FC00000-0x1FFFFFFF
  Cached 0x9FC00000-0x9FFFFFFF 0x1FC00000-0x1FFFFFFF
  Uncached 0xBFC00000-0xBFFFFFFF 0x1FC00000-0x1FFFFFFF
   
  Some Acronyms
  --------
  EE    - Emotion Engine (main CPU)
  GS    - Graphics Synthesizer
  IOP  - Input/Output Processor
  SPU  - Sound Processor Unit
USEG  - User Mode Segment
KSEG0 - Kernel Mode, Segment 0
  KSEG1 - Kernel Mode, Segment 1  
Sources
-------
TX System RISC TX79 Core Architecture (Symmetric 2-way superscalar 64-bit CPU) Rev. 2.0
(http://lukasz.dk/files/tx79architecture.pdf)
PS2 MEMORY & HARDWARE MAPPED REGISTERS LAYOUT, by Minmei    (http://ps2dev.org/ps2/Technical_Documentation/Other/PS2_Memory_and_Hardware_Mapped_Registers_Layout.download)
Kernel empty and unused areas, by GTLCPIMP (https://artemis.bountysource.com/task/show/2270)
  dump2mass, by misfire (https://artemis.bountysource.com/solution/show/1074)
  ... and others ones spreaded out on the World Wide Web which I can't remember


        (0x18990031 >> 0xC) & 0xFFFF0 = 0x18990
=== Self System Table Offset ===
        (0x18B60032 >> 0xC) & 0xFFFF0 = 0x18B60
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
|-
! FW version !! TOC !!  Notes
|-
| 2.50 SoftEmu || 0x5C7ED8 ||
|-
| 3.41 SoftEmu || 0x5C8C00 ||
|-
|}
 
=== Enable Playstation 2 on non BC's===
 
[[http://www.ps3devwiki.com/index.php?title=Emulation#Getting_Playstation_2_Software_Emulator_working Getting Playstation 2 Software Emulator working]]


store value in [0x18990 + ??? ]
[[Image:Vsh_ps2_change1.png|left|thumb|400px|XMB Game Settings non BC/BC,patched]]<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
seg017:0000000000198498 next_value:                            # CODE XREF: read_id0x12_type_1+120�j
==== Service Mode in relation to PS2 emulation tests ====
seg017:0000000000198498                lwz      r0, 0(r10)    # -> 0x18990031
* Service mode resets display settings (on default it uses HDMI with composite on MultiAV connector) - this means that users of Component cables can get garbled screen / no display output (in tests below, the primairy screen) unless using composite wiring/screen (in tests below, the secondairy screen).
seg017:000000000019849C                addi      r8, r8, 1    # counter
 
seg017:00000000001984A0                ld        r29, 0(r31)
* Service Mode also resets user presets like disc autoboot, so it needs to be disabled again if needed.
seg017:00000000001984A4                addi      r10, r10, 4  # ptr to next value
 
seg017:00000000001984A8                rlwinm    r28, r0, 20,12,27 # r28 = (r0 >> 12) & 0xFFFF0 = (0x18990031 >> 12) & 0xFFFF0 = 0x18990
* Any made Virtual Memory Cards previously will be removed and you will have no access to them, nor be able to create one.
seg017:00000000001984AC                clrlslwi  r11, r0, 16,3 # r11 = 0x0031 << 3 = 0x188
seg017:00000000001984B0                add      r26, r28, r29 # r26 = 0x18990 + ??
seg017:00000000001984B4                stw      r11, 4(r26)   # store 0x62000? or 0x188? in r26
seg017:00000000001984B8                lwz      r5, 0x50(r31) # count
seg017:00000000001984BC                cmplw    cr6, r5, r8
seg017:00000000001984C0                bgt      cr6, next_value
</pre>
<br>
Leaving old info for now as it have good explanation of code itself. Command patch vu0_jit_data memory directly. For example above patch will write 0x188 to 0x1C018994 address. vu0 jit mem hold info about microprograms, like how many cycles will run, where program start/end, where is ebit, etc. For now is unknown which info is patched, but shift by 3 suggest it will be vu0 address related info. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 12:23, 14 June 2023 (CEST)


====type 2====
* When PS3 is switching to PS2, connection with Sixaxis / Dualshock 3 will be lost (even when using USB wired connection). In some cases easily resyncable by using PS button, but in other cases the leds stay off and the controller cannot be used (until ps2 mode is exited or console rebooted)


Fix for interlocking/synchronization EE with VU0 in micro mode. Usually used with games that are m bit sensitive, or loop endlessly on VU0 due to lack of sync with EE core.  
* As a workaround for above wireless controller issue, you can use an USB2PS2 converter and connect an old PS2 / Dualshock2 controller.


<pre>
Primal
298  00 00 00 04
29C  00 00 00 00 
2A0  02 00>03 00< Type 2, Count 3
2A4  5F 01 00 00
2A8  8D BD 6F 2C
2AC  67 03 00 00 
2B0  02 00>03 00< Type 2, Count 3
2B4  6B 01 00 00
2B8  31 35 70 E9
2BC  72 03 00 00 
2C0  03 00>02 00< Type 3, Count 2
2C4  60 9B 39 10
2C8  18 9C 39 10
2CC


type 2:
====XMB messages related with PS2 Emulation====
*0x20C | counter
'''From: explore_category_sysconf.rco\Text\English.xml'''
*0x210 | 1st value: 0x15F      -> only gets compared, if passed check 2nd value
<Text name="msg_ps_ps2_upconvert">PS/PS2 - Upscaler</Text>
*0x214 | 2nd value: 0x2C6FBD8D -> only gets compared, if passed use *0x218 + *0x21C
<Text name="msg_ps_upconvert">PS - Upscaler</Text>
*0x218 | 1 ( = count - 2)
        *0x21C | ptr to 3rd value *0x2AC (0x367)
<Text name="msg_ps_ps2_smoothing">PS/PS2 - Smoothing</Text>
 
<Text name="msg_ps_smoothing">PS - Smoothing</Text>
First value is VU0 microprogram start address, multiply by 8 to get correct offset in VU0 micro mem. That one is confirmed,
<Text name="msg_ps_ps2_smoothing_explanation">Reduces the roughness of the displayed image.</Text>
and you can check CMSAR0 register status in pcsx2 when EE hit address from type 3 command to make sure. Now some guessing.  
Second value is probably hash of microprogram (from start address to e bit end).  
'''From: game_ext_plugin.rco\Text\English.xml'''
Third value can be run cycles before program is force stopped, for example to wait on m bit for EE side to catch, or to stop endless
<Text name="msg_error_cannot_play_ps2disc_scee">This title is not currently compatible with the PS3™ system. Please visit faq.eu.playstation.com/bc for a list of PlayStation®2 format software titles that are compatible, and to update the System Software that will enable your PS3™ system to play additional PlayStation®2 format software titles.</Text>
loop that normally should already end if VU0 didn't run ahead of EE.
<Text name="msg_error_cannot_play_ps2disc_scea">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.us.playstation.com/Support/CompatibleStatus to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
Fourth and next values if available can be run cycles for next program runs.  
<Text name="msg_error_cannot_play_ps2disc_scej">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.jp.playstation.com/ps3/status/ to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
A lot of guessing here. But looking at games that use it, there is high possibility that is correct.
<Text name="msg_error_cannot_play_ps2disc_scek">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.playstation.co.kr/info/bc to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
This command is always used with type 3, or 4. This is probably not required, but without notifying EE side type 2 is useless.  
<Text name="msg_error_cannot_play_ps2disc_sceasia">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://asia.playstation.com/status to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
</pre>
 
<Text name="msg_cannot_run_ps2_fromat_corretly_stop">A problem has occurred. This PlayStation®2 format software was forced to quit.</Text>
====type 3====
'''From: explore_plugin_full.rco\Text\English.xml'''
<Text name="msg_setting_file_ps2">Settings File (PlayStation®2)</Text>
<Text name="msg_your_bb_navigator">Your PlayStation®BB Navigator</Text>
<Text name="msg_system_driver_ps1">System Driver</Text>
<Text name="msg_system_driver_ps2">System Driver (PlayStation®2)</Text>
<Text name="msg_error_cannot_play_ps2_format">This model of the PS3™ system is not compatible with PlayStation®2 format software.</Text>


<pre>
==== tests on 2000 series PS3 Slim ====
  Example Primal
Testplatform:
*0x11B4| counter
  SKU: 2000 series slim (minver 2.70)
*0x11B8| -1 -> 0x399B60?
Firmware: 3.55 'Rogero 3.4' mmap114+peek/poke but no SS-patches
*0x11BC| 0 -> 0x399B60?
Memorycards: MC:PS1 in slot1, MC:PS2 in slot2.
*0x11C0| ptr to *0x2C4 values
Mainscreen: Component+Composite 576i+P/720i+P//1080i
*0x11C4| count (2)
Sec.screen: Composite 576i
48 titles tested (PAL disc on PAL SKU) // [[User:Euss|Euss]]


r11 = r0 & 0xFFFFFFF = 0x10399B60 & 0xFFFFFFF = 0x399B60
* Without Factory Service Mode : gives "Incompatible Data" when inserting PS2 disc
0x10399C18 & 0xFFFFFFF = 0x399C18


r3 = r31 >> 28 = 0x10399B60 >> 0x1C = 1
* When enabling [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/private/jp8zhvuocjz95cfrjm0uzg) : no changes in XMB:Game (still only PS upscaler/smoothing, no PS2 mention at all)
a check if 1,2
 
</pre>
* When enabling [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/4355919) : gives XMB:Game PS2 smoothing/upscaling options, it also make an inserted disk to be seen as PS2 format. Still same problem of ¨incompatible title¨ and loss of BT/settings. Also after returning to XMB, it no longer sees the disc as PS2 format but as incompatible data (which suggests the lv2 patch is undone, as lv2 is reloaded when returning from the ps2 lpar)
 
* Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] without factory service mode : no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title).
 
* With Factory Service Mode enabled (there are no Xmb options to combinetest with [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] or [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg]): gives ´PS2 disc´ detected at disc icon, but starting gives: resetting of date/time/displayoutput (effectively disabling my mainscreen), then all connection to any bound bluetooth device is lost, even when connected via USB (needs multiple PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title).


====type 4====
In short: [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] and Factory Service Mode seem to enable simulare (it tries to boot it) while [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives you more options e.g. using [http://www.ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher].
Perhaps hardswapping out all the dev_flash ps2 emu files for the same software only emulator would circumvent the 'incompatible title' message.


        cmpwi    cr7, r0, 4
        bne      cr7, panic_dword_1967BC
        srwi      r9, r6, 1    # r9 = r6 >> 1 = count >> 1
        addi      r11, r4, 4
        stw      r9, 0x1238(r31) save count>>1
        std      r11, 0x1240(r31) save ptr to table values start


One correct entry is 2x 32 bit. First 32 bits are EE Opcode in little endian, second 32 bits are the same as first 4 bits of type 3 (interlocking). This type of config work in conjunction with type 2 config, and was required because R&C series use EE memory overlays. So type 3 config can't be used here as EE offset change per game level.
==== Second test: FW 2.70/3.15 ====
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives title not supported error message like "This title is not currently compatible with the PS3 system".


Here is alternative config for Rayman 3 (SLUS_206.01), this time using type 4 instead of 3. Just to confirm above is true. Untested, because i have no ability to do that.  
==== Third test: FW 3.55 OtherOS++22GB (with SS Patches) ====
<pre>
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [http://www.ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives blackscreen lockup, not reacting on PS button, or powerbutton, requiring removing powercord.
12 00 00 00 0C 00 00 00 00 00 00 04 00 00 00 00
02 00 04 00 00 00 00 00 AE B3 4E 5D 20 02 00 00
46 02 00 00 04 00 04 00 00 30 D3 48 01 00 00 00
00 30 C8 48 01 00 00 00
</pre>


===ps2_netemu command 0x17===
This command is used only in Bully which is only known game by R* Vancouver, there is a chance that is only game which need it. But just in case, what game do is MTC0 $zero, Count <br>
And read that at some point. Since we are in recompiler, count is updated only on events. This can create situation where game retrieve 0 value from count reg. Which according to pcsx2 source is wrong ([[https://github.com/PCSX2/pcsx2/blob/b3590430c97e8df170df0c00ebf466ce848edbf9/pcsx2/COP0.cpp#L56 | referred as TIMR]]). To be honest I'm not 100% sure that is issue here. Only other problem i can imagine is potential divide by 0 in emu itself. Anyway, if game do MTC0 zero, Count (00 48 80 40), or any weird operations with Count. This config should be tested.


===ps2_netemu command 0x21===
===== considering titles to test =====
Well, i don't know where to start.. This command with param 0 or 1 at some point prevent writes to TagLo register. Not with MTC0 tho, but during different opcode that is handled separately. I got this unresolved yet, but it seems that is CACHE opcode. That potentially mean ps2_netemu support some parts of instruction cache. But this need to be tested on real hardware. Good candidate here is WRC4. When command 0x21 with 0 or 1 is added to standard config, game should fail to load at all (unless game getting lucky like described in emu bugs section).
* http://en.wikipedia.org/wiki/List_of_PlayStation_3_backward_compatible_PlayStation_2_and_PlayStation_games
*I assume the cache handling would be the cause for games panicking/shutting down when 0x21 is set at 0? I cannot remember correctly if WRC panics (Agrippa would know better), but games like Shadow Hearts 2/3 will shut down after loading a save when instructions are being loaded in the EE memory from outside the main executable. My mind is blanking on other games besides those two, but surely a handful of games I have tested have had shutdowns caused by this command.--[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 20:13, 1 October 2022 (UTC)
* http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530
** Yes, since that command disable cache handling only partially. There could be some unexpected issues. Problem is that 0x21 do little bit more, and little bit weird. Not gonna lie, cache is new territory for me since i never worked with any emu that support it. PCSX2 support good chunk of cache, but only in interpreter mode, and usually i just patched games to not rely on cache. This is what i got for now.
* http://us.playstation.com/support/compatiblestatus/index.htm
*** If my memory serves me right:
**** WRC4 - panic at the loading of stages (0x21-0)
**** VP2 - panic at the switching to the battle mode (0x21-0) or player models fail to load in the battle mode (0x21-1)
**** MGS3 - frame rate improvement, at the expense of awfully longer loading times (0x21-0).--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 11:40, 2 October 2022 (UTC)
**Since it’s worth mentioning, 0x21 set to 0 also fixes the camera angle issue in Radiata Stories after one or two battle sequences.--[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 15:02, 2 October 2022 (UTC)
***I think the issue is not related to the camera at all. It looks similar to the VP2 case I posted earlier - the models fail to load on the post battle screen (shadows are drawn, though). Moreover, various models do disappear for a second in the battle mode too, if I remember correctly. Just a guess, as both games share the same engine.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 18:22, 4 October 2022 (UTC)
I messed little bit with this code today, and 0x21_1, plus 0x03 at the same time seems to be most aggressive combo to remove instruction cache emulation. Not sure about compatibility, but this two configs together skip most cache code in emulator. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 10:21, 21 October 2022 (UTC)
*Quick test with this, random game (ATV Offroad Fury 4). It seems like 0x21_0 still gave a better improvement to menu FMV playback/stutter than 0x21_1 and 0x03. I didn't notice any change in performance with 0x21_1 in this scenario. Caching is still enabled with IHIN/IXIN with 0x21_0?--[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 00:15, 22 October 2022 (UTC)
**Whoops, sorry i meant 0x21_0 and 0x03. 0x21_1 actually create a lot of additional recompiled code. 0x21_0 is so fast because it skips lookup for cached addresses also outside of general cache opcodes (that how it looks like, i need to do little bit more work here). IHIN/IXIN (hit/index invalidation) can be totally disabled only with 0x03. 0x21 (0/1) still generate a lot of code for IHIN/IXIN when 0x03 is not used, even more that without 0x21. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 06:53, 22 October 2022 (UTC)
***Okay, that makes sense. It is difficult to tell if adding 0x03 with 0x21_0 made any difference with this game as FMV is fixed with just 0x21_0, but it may be beneficial to test games that still have FMV playback issues with 0x21_0 enabled (slight desync still with Shadow Hearts).--[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 15:05, 22 October 2022 (UTC)
<br><br>'''Emotion Engine Cache support'''<br>
Apparently, emulator support some parts of cache. More precisely instruction cache. Implementation seems to be simple and not 100% accurate, and there is no data cache support (obviously - speed). Still impressive there is something at all in recompiler.


'''Supported opcodes:'''
These have no listed issues:
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
* Half-Life
|-
* Hulk
! Opcode || Info
* Medal of Honor: Frontline
|-
These have minor issues listed (but should still play):
|r5900 CACHE BXLBT ||  Unsupported, store 0 on COP0 TagLo and TagHi
* Silent Hill 3
|-
* Second Sight
|r5900 CACHE DXLDT ||  Unsupported, store 0 on COP0 TagLo
|-
|r5900 CACHE DXLTG || Unsupported, store 0 on COP0 TagLo
|-
|r5900 CACHE IXLDT ||  Unsupported, store 0 on COP0 TagLo
|-
|r5900 CACHE IXLTG ||  Supported, cmd 0x21 (0,1) skip function and store 0 on COP0 TagLo
|-
|r5900 CACHE DXWBIN || Not supported at all, empty function.
|-
|r5900 CACHE DXIN  ||  Not supported at all, empty function.
|-
|r5900 CACHE DHWBIN || Not supported at all, empty function.
|-
|r5900 CACHE DHIN  ||  Not supported at all, empty function.
|-
|r5900 CACHE DHWOIN || Not supported at all, empty function.
|-
|r5900 CACHE IHIN  ||  Full support, cmd 0x21 (0,1) change path of that opcode, 0x03 practically skip whole op.
|-
|r5900 CACHE IXIN  ||  Full support, cmd 0x21 (0,1) change path of that opcode, 0x03 practically skip whole op.
|-
|r5900 CACHE misc  ||  Do something, but function is little bit complicated to tell for now that it is something that make sense.
|}
--[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 21:03, 1 October 2022 (UTC)


Example of recompiled code with enabled cache emulation:  https://pastebin.com/sDwc1MLX
==== tests on CECHC04 (partial BC) ====
* Every operation with r15 and following r7/r8 loads, compares, and cr operations will be skipped by emitter with 0x21 --> 0
on 3.41 or on 3.55 in normal XMB mode (no disc icon in XMB): boot_ps2.pkg gives no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the "The system was not turned off properly" as if it had experienced poweroff and from there booted back to XMB. It then returns to the XMB, but first gives an error screen, mentioning 0x80028F17 occured (''PS2 mode error 0x80028F17 "An error occurred during the start operation (80028F17)," PlayStation 2 disc Boot Error, also related to PS1 PSN games.'')
* r15 is loaded with current address (page?), to get full value shift it left by 6 eg.  0x808710 << 6 = 0x2021C400 (shift left by 6 = multiplying by 0x40)
* For small part of code posted on pastebin, cache check is performed 33 times * 8 opcodes = 264 opcodes from 801 are cache checks! A lot of work, a lot of code mostly for nothing.
* Conclusion. Use 0x21 --> 0 whenever you can. iCache emulation is pointless for 99% of games.
* Small oftopic. Every opcode that write to r13 increase emulated cycles. Every opcode writing to r14 modify current r5900 pc. Every branch to 0x3800 mean that event test will be performed.
* Problematic games (have issues with 0x21 enabled): Shadow Hearts 3, Jak & Daxter, VP2, Hot Shots series, Kingdom Hearts. Any game that load additional code overlays and do that custom way, for example Shadow Hearts 3 load code from bin files hidden in cpx files. All those games doesn't really need iCache emulation to work, but emulator seems to have issue with code invalidation. Only small amount of games used this method of loading, so it still should be fine for 99% of games.
--[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:32, 22 May 2023 (CEST)
* Radiata does not crash. English patch for FFXII IZJS does crash though (0x21 fixes stuttering in turbo mode).--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 20:33, 22 May 2023 (CEST)
** Whoops, my bad. Fixed. :P --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 09:44, 23 May 2023 (CEST)
*** Actually, the icache invalidation issues could explain why the infamous Maori VP2 overlay anti-protection patch is not working on the netemu.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 22:14, 15 June 2023 (CEST)
**** His patch is basically self modifying code, so its possible. You can try cmd 0x01 with 0x0E subcommand hook at 0x01feb1c0. This invalidate whole mem every time offset is hit, ensuring that new code that is written from patcher is not in conflict with cache. Also remember that 0x42 is applied only on syscall 7, so if game modify 0x1feb1c0 - 0x1feb2e0 region, it will wipe patcher. And games often memzero whole data memory right after start. This issue don't exist on pcsx2 because it will reapply it on next vsync, while on netemu only 0x09/0x0A patches are reapplied. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 15:37, 16 June 2023 (CEST)


===ps2_netemu command 0x22===
on 3.41 or on 3.55 in normal XMB mode (disc icon in XMB): boot_ps2.pkg gives resetting of date/time/displayoutput (no output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation). The game is playable on secondary screen, and exit to XMB with holding PS button goes without 0x80028F17 errors, but does give the "The system was not turned off properly" error.
Weird command. Sets something 1 (CDVD/MECHA), but seems to never use it.


===ps2_netemu command 0x28===
no disc icon:
This command is heavily stripped version of command from gxemu. On netemu only option that seems to change anything is 0. From what i gathered in emu, when set to 0 SEEK ncmd will to be ignored and instant command ack is set. When 0 is used cdvd.SeekToSector is not updated from NCMD params. For emulated vm this mean next read command will perform seek to sector from position where last read end. Not sure if i'm understanding that correctly, it seems to be very hacky solution.
* Medal of Honor: Rising Sun
* Half-Life


After some more work, its either skip seek, or make seek instant. Still a hack, but may give some loading boosts here and there (and break a lot of stuff too).
disc icon:
* Hulk
* Second Sight
* Silent Hill 3


===ps2_netemu command 0x2A===
Any idea what this command is doing? It seems to be directly related to IPU. I thought it only fixed black screen issues on certain games, but it also fixes Mystery Mayhem’s glitching/freezing/stuttering FMVs.
* This config skip check of another value, which finally make one of functions to never run. This affect "SYS" thread, and value that is checked seems to be related to EE/COP2 recompilers (pure guess by addresses that write there...). Nothing related directly to IPU, that's for sure. But this is part of emu that i have basically untouched, so i can't tell what its really skipped here. Function that is skipped trigger other functions which read cached mips code. So maybe something related to recompiler flushing, or constant propagation. Hard to tell at this point. For sure this is something i want to look more into, but not yet. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 05:56, 8 July 2022 (UTC)
** Gotcha. So, I guess it is indirectly affecting the IPU? Or at least something EE/COP2 touches after IPU stuff. The current games that this command fixes are: All Star Baseball 2004 (GX config), Scooby-Doo! Mystery Mayhem (fixes repeating audio and FMV slowdown), Pro Evolution Soccer 6 (PAL v2.00 and NTSC-J only, unneeded in other versions, fixes black screen after opening FMV), and SCORE International Baja 1000 (fixes black screen after career mode FMV). These are all the currently known uses of the command. --[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 02:15, 10 July 2022 (UTC)


===ps2_netemu command 0x2E===
Without this command applied there is a black screen and no sound after the PS2LOGO, but the game (Growlanser Generations) is working in the background. Pressing the "PS" button fixes it. After applying this command (0x172 parameter) everything works correctly.
* this (like most "mecha" commands) is messing with timing.
lwz      r0, 0x2C(r31)          # cmd_0x2E
cmpwi    cr7, r0, 0
beq      cr7, cdvd_error_1349B4  # skip cdvd error if cmd not 0.
nop
loc_134988:
mftb      r9
cmpwi    cr7, r9, 0
beq      cr7, loc_134988        # Loop until timebase is not 0
clrldi    r0, r0, 32
add      r0, r0, r9
li        r9, 5
std      r0, 0x20(r31)          # cmd_0x2E + timebase
stw      r9, 0(r31)
b        end_134844
Value from 0x20(r31) is later used in compare. That result in cdvd error, or in setting which seems schedule event to happen after time from timebase pass. This event is netemu syscall 8 (0x200) which is related to all ps2 cdvd reads. Tl;dr is that value give emulator some more time before cdvd error. Weird thing is that PS button fix it.. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 07:05, 7 March 2022 (UTC)


===ps2_gxemu command 0x19===
==== PS2 on non BC HW - Tests ====
Command disable reads/writes to selected IOP HW registers. Disabled regs are:


* 0x10000000 - 0x10003FFF (DEV9/SPEED/ATA/SMAP)
{| class="wikitable sortable"
* 0x1F801460 - 0x1F80147F (Unknown)
|-
 
! rowspan="2" | Title !! rowspan="2" | DiscID !! colspan="2" | Disc Icon !! colspan="3" | ps2_softemu !! rowspan="2" | Remarks
Command is auto applied to titles listed here (duplicates are really there in emu too):
|-
    Hash          ID                Name
! <abbr title="Normal Mode">Normal</abbr> !! <abbr title="Factory Service Mode">FSM</abbr> !! 2.50 !! 2.60 !! 2.70
0x0CD1298155  SLES_540.13  World Snooker Championship 2007
|-
0x12C93199A5  SLES_518.40  NHL Hitz Pro
| Action Replay MAX || SCED54409 ||  || {{ps2cd}} || || || {{no}} ||
0x15C93199AD  SLES_549.13  Pro Evolution Soccer 2008
|-
0x24D92589A5  SLUS_211.86  NBA Ballers - Phenom
| Battlefield 2 Modern Combat || SLES53729 || || {{ps2dvd}} || || || {{no}} ||
0x2CD12D8125  SLUS_212.35  MLB 2K6
|-
0x34C9359935  SLUS_211.38  X-Men Legends II - Rise of Apocalypse
| Constantine || SLES52872 || || {{ps2dvd}} || || || {{no}} ||
0x34C93599E5  SLUS_211.28  Blitz - The League
|-
  0x34C93599E5  SLUS_211.28 Blitz - The League
| Demo Disc 3-073-543-11 || PBPX95514 || || {{ps2dvd}} || || || {{no}} ||
  0x449961C9E5 SLES_542.10 NBA 2K7
|-
0x4C9169C1CD  SLES_542.46  FIFA '07
| EyeToy Play || SCES51513 || || {{ps2dvd}} || || || {{no}} ||
  0x4C9169C1D5 SLES_542.45 NHL '07
|-
0x4C9169C1DD  SLES_542.44  FIFA '07
| EyeToy Play 2 || SCES52748 || || {{ps2dvd}} || || || {{no}} ||
0x4C9169C1E5  SLES_542.43  FIFA '07
|-
  0x4C9169C1F5 SLES_542.41 FIFA '07
| EyeToy Play 3 || SLES53315 || || {{ps2dvd}} || || || {{no}} ||
0x4C9169C1FD  SLES_542.40  FIFA '07
|-
  0x4CB14DE12D SLUS_213.74 Marvel - Ultimate Alliance
| Freedom Fighters || SLES51467 || || {{ps2dvd}} || || || {{no}} ||
0x54A955F915  SLUS_212.74  Outrun 2006 - Coast 2 Coas
|-
  0x5CA15DF165 SLUS_213.01 World Series of Poker
| Ghost in the Shell Standalone Complex || SLES53020 || || {{ps2dvd}} || || || {{no}} ||
0x5CA15DF1FD  SLUS_212.86  WWE SmackDown! vs RAW 2006
|-
0x5CA15DF1FD  SLUS_212.86  WWE SmackDown! vs RAW 2006
| GoldenEye Rogue Agent || SLES52974 || || {{ps2dvd}} || || || {{no}} ||
  0x649965C94D  SLUS_214.63 Tom Clancy's Ghost Recon 2
|-
  0x649965C955  SLUS_214.60  NBA Live '07
| Guerrilla Strike || SLES53344 || || {{ps2cd}} || || || {{no}} ||
0x649965C95D  SLUS_214.61  NASCAR '07
|-
  0x649965C965 SLUS_214.58 NHL '07
| Gunfighter 2 Revenge of Jessy James || SLES51289 || || {{ps2cd}} || || || {{no}} ||
0x649965C96D  SLUS_214.59  NCAA Football '07
|-
0x6BB149E15D  SLES_531.04  Tom Clancy's Rainbow Six - Lockdown
| Half Life || SLES50504 || || {{ps2cd}} || || || {{no}} ||
  0x6C916DC165  SLUS_214.91  World Series of Poker - Tournament of Champions
|-
  0x6C916DC1A5 SLUS_214.83  Tiger Woods PGA Tour '07
| HDLoader || - || || {{ps2cd}} ||  || || {{no}} ||
  0x6C916DC1AD  SLUS_214.82  NFL Street 3
|-
  0x6C916DC1B5 SLUS_214.81  NCAA March Madness '07
| International Golf Pro || SLES52349 || || {{ps2cd}} || || || {{no}} ||
0x6C916DC1D5  SLUS_214.77  Madden NFL '07 [Hall of Fame Edition]
|-
0x6C916DC1DD  SLUS_214.76  Madden NFL '07
| Jet Ion GP || SLES50544 || || {{ps2cd}} || || || {{no}} ||
0x748975D9DD  SLUS_213.83  Fight Night - Round 3
|-
  0x7C817DD125 SLUS_214.33 FIFA Soccer '07
| killer7 || SLES53366 || || {{ps2dvd}} || || || {{no}} ||
0x7C817DD165  SLUS_214.25  NHL 2K7
|-
  0x7C817DD16D  SLUS_214.24 NBA 2K7
| Kya Dark Lineage || SLES51473 || || {{ps2dvd}} || || || {{no}} ||
  0x7C817DD175  SLUS_214.27  WWE SmackDown! vs RAW 2007
|-
0x7C817DD1CD  SLUS_214.12  World Championship Poker featuring Howard Lederer - All-In
| London Racer Destruction Madness || SLES53654 || || {{ps2cd}} || || || {{no}} ||
  0x84798529BD SLUS_205.65 Champions of Norrath
|-
0x8559A109AD  uuunnnnnkkk  
| London Racer Police Madness || SLES53536 || || {{ps2cd}} || || || {{no}} ||
0x8579852915  SLUS_215.68  Arena Football - Road to Glory
|-
  0x8579852965  SLUS_215.82 MVP '07 - NCAA Baseball
| Manhunt || SLES52023 || || {{ps2dvd}} || || || {{no}} ||
  0x8D51A90145  SLES_545.11  UEFA Champions League
|-
  0x8D51A901B5 SLES_545.13  UEFA Champions League
| Max Play - 10 Classic Retro Games || - || || {{ps2cd}} || || || {{no}} ||
0x8D51A901BD  SLES_545.12  UEFA Champions League
|-
  0x8D718D21BD SLUS_216.20 NCAA Football '08
| Medal of Honor European Assault || SLES53332 || || {{ps2dvd}} ||  || || {{no}} ||
0x9C619D31E5  SLUS_205.41  NBA Ballers
|-
0x9D41B911AD  SLES_544.48  World Series of Poker - Tournament of Champions
| Medal of Honor Frontline || SLES50684 || || {{ps2dvd}} || || || {{no}} ||
  0x9D619D31C5 SLUS_215.61 Major League Baseball 2K7
|-
  0x9F29357805 SCUS_975.44 NBA '07 featuring The Life Vol.2
| Medal of Honor Rising Sun || SLES51873 || || {{ps2dvd}} || || || {{no}} ||
0x9F293578E5  SCUS_975.56  MLB '07 - The Show
|-
  0xB549B51915 SLUS_216.38 Madden NFL '0
| Medal of Honor Vanguard || SLES54683 || || {{ps2dvd}} ||  || || {{no}} ||
0xB549B51925  SLUS_216.32  NHL 2K8
|-
  0xB549B5195D SLUS_216.47 NHL '08
| Men in Black II Alien Escape || SLES50789 || || {{ps2dvd}} || || || {{no}} ||
0xB549B519A5  SLUS_216.48  FIFA Soccer '08
|-
  0xB549B519AD  SLUS_216.49  NBA Live '08
| Network Access Disc || SCES51578 ||  || {{ps2dvd}} |||  || {{no}} ||
  0xBC61793025 SCES_532.85  Ratchet - Gladiator
|-
0xBD41BD1105  SLUS_216.69  NBA 2K8
| OPM #66 || SCED54409 || || {{ps2dvd}} || ||  || {{no}} ||
0xC439C569F5  SLUS_208.20  Tom Clancy's Ghost Recon - Jungle Storm
|-
  0xC7716D20D5 SCUS_974.01 Hot Shots Golf FORE!
| OPM #67 || SCED54410 || || {{ps2dvd}} || ||  || {{no}} ||
0xC7716D20D5  SCUS_974.01  Hot Shots Golf FORE!
|-
  0xCA11E941F5  SLES_516.97 SSX 3
| OPM #68 || SCED54412 || || {{ps2dvd}} || || || {{no}} ||
0xCF7965285D  SCUS_973.53  Ratchet and Clank - Up Your Arsenal
|-
  0xCF7965285D SCUS_973.53 Ratchet and Clank - Up Your Arsenal
| OPM #69 || SCED54413 || || {{ps2dvd}} || || || {{no}} ||
0xD20911582D  SCES_515.93  Hardware Online Arena [Beta, Promo & Full Release]
|-
  0xD7617D308D  SCUS_973.28 Gran Turismo 4
| OPM #70 || SCED54415 ||| {{ps2dvd}} ||  || || {{no}} ||
  0xE339C1695D  SLES_525.45  Star Wars Battlefront
|-
0xE794CCB06D  PCPX_980.42  Minna no Tennis
| OPM #72 || SCED54417 || || {{ps2dvd}} || || || {{no}} ||
0xEA3129608D  SCES_515.78  Network Access Disc [Original, v4.02 & v4.03]
|-
0xEC11ED4115  SLUS_209.73  Champions - Return to Arms
| OPM #73 || SCED54418 || || {{ps2dvd}} || || || {{no}} ||
  0xEF594508D5  SCUS_975.00 MLB '06 - The Show
|-
0xF409F559AD  SLUS_208.89  MLB Slugfest - Loaded
| OPM #74 || SCED55113 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
  0xF7415D10E5  SCUS_974.65 Ratchet - Deadlocked
|-
  0xF7415D10E5  SCUS_974.65  Ratchet - Deadlocked
| OPM #75 || SCED55114 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
As a result config disable HDD/NET capabilities.
|-
 
| OPM #77 || SCED55117 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
==XMB messages related with PS2 Emulation==
|-
{{Boxcode|title=explore_category_sysconf.rco\Text\English.xml|code=<syntaxhighlight lang="xml">
| OPM #79 || SCED55119 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
  <Text name="msg_ps_ps2_upconvert">PS/PS2 - Upscaler</Text>
|-
<Text name="msg_ps_upconvert">PS - Upscaler</Text>
| Perfect Ace Pro Tournament Tennis || SLES51735 ||  || {{ps2cd}} ||  ||  || {{no}} ||
|-
  <Text name="msg_ps_ps2_smoothing">PS/PS2 - Smoothing</Text>
| Prisoner of War || SLES50397 ||  || {{ps2dvd}} || ||  || {{no}} ||
  <Text name="msg_ps_smoothing">PS - Smoothing</Text>
|-
  <Text name="msg_ps_ps2_smoothing_explanation">Reduces the roughness of the displayed image.</Text>
| Ratchet & Clank 3 || SCES52456 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
</syntaxhighlight>}}
|-
 
| Red Baron || SLES53434 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
{{Boxcode|title=game_ext_plugin.rco\Text\English.xml|code=<syntaxhighlight lang="xml">
  <Text name="msg_error_cannot_play_ps2disc_scee">This title is not currently compatible with the PS3™ system. Please visit faq.eu.playstation.com/bc for a list of PlayStation®2 format software titles that are compatible, and to update the System Software that will enable your PS3™ system to play additional PlayStation®2 format software titles.</Text>
  <Text name="msg_error_cannot_play_ps2disc_scea">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.us.playstation.com/Support/CompatibleStatus to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
  <Text name="msg_error_cannot_play_ps2disc_scej">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.jp.playstation.com/ps3/status/ to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
  <Text name="msg_error_cannot_play_ps2disc_scek">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://www.playstation.co.kr/info/bc to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
  <Text name="msg_error_cannot_play_ps2disc_sceasia">This title is not currently compatible with the PS3™ system. If you update your system software the title may become compatible with your system. Please visit http://asia.playstation.com/status to check whether a specific PlayStation®2 format software title is compatible with the PS3™ system.</Text>
   
<Text name="msg_cannot_run_ps2_fromat_corretly_stop">A problem has occurred. This PlayStation®2 format software was forced to quit.</Text>
</syntaxhighlight>}}
 
{{Boxcode|title=explore_plugin_full.rco\Text\English.xml|code=<syntaxhighlight lang="xml">
  <Text name="msg_setting_file_ps2">Settings File (PlayStation®2)</Text>
  <Text name="msg_your_bb_navigator">Your PlayStation®BB Navigator</Text>
<Text name="msg_system_driver_ps1">System Driver</Text>
  <Text name="msg_system_driver_ps2">System Driver (PlayStation®2)</Text>
   
  <Text name="msg_error_cannot_play_ps2_format">This model of the PS3™ system is not compatible with PlayStation®2 format software.</Text>
</syntaxhighlight>}}
 
==Obsolete experiments==
This is kept here for historical purposes, but needs to be rewritten or deleted
 
===Getting Playstation 2 Software Emulator working===
 
Method (on Firmware 3.55, without! Cobra-USB Dongle or Downgrade) for all consoles (fat & slim).
 
1. Replace following files on your consoles /dev_flash/
    with the ones included in this archive
    p3dwik-ps2compatfiles.rar
  2. Get into Factory Service Mode (FSM Tool/Dongle)
  3. Insert your Original PS2 Game Disc
  4. It will run.
 
Note: Backups wont work. You're getting the compatibility of the 2.60 software emulator with all of its bugs.
 
Download: [http://www.sendspace.com/file/bm9z9v p3dwik-ps2compatfiles.rar]<br>
Possible compatibility Lists:
* http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530
* [[Talk:Emulation#PS2.2FPStwo]]
 
 
====boot_ps2====
http://foxbrew.org/ps3/otheros-utils/boot_ps2.git <br />
http://www.multi...upload.com/QKK7ETPHXZ boot_ps2-src.rar (1.43 KB) <br />
http://www.multi...upload.com/YCZ63Y6TQ5 boot_ps2.pkg (69.17 KB) <br />
 
any chance of having this package resigned for 4.21 cfw? might be useful to see if it'll boot ps2_netemu.self LPAR.
 
(can boot ps2lpar, but also petitboot if otheros installed! 50:50 chance)
 
[http://rghost.net/42586725 boot_ps2 4.xx eboots.zip (153 KB)] <br /> installing 3.55 pkg and replacing the eboot and editing the sfo should work.
 
=== Enable Playstation 2 on non BC's===
 
[[http://www.ps3devwiki.com/index.php?title=Emulation#Getting_Playstation_2_Software_Emulator_working Getting Playstation 2 Software Emulator working]]
 
[[Image:Vsh_ps2_change1.png|left|thumb|400px|XMB Game Settings non BC/BC,patched]]<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
==== Service Mode in relation to PS2 emulation tests ====
* Service mode resets display settings (on default it uses HDMI with composite on MultiAV connector) - this means that users of Component cables can get garbled screen / no display output (in tests below, the primairy screen) unless using composite wiring/screen (in tests below, the secondairy screen).
 
* Service Mode also resets user presets like disc autoboot, so it needs to be disabled again if needed.
 
* Any made Virtual Memory Cards previously will be removed and you will have no access to them, nor be able to create one.
 
* When PS3 is switching to PS2, connection with Sixaxis / Dualshock 3 will be lost (even when using USB wired connection). In some cases easily resyncable by using PS button, but in other cases the leds stay off and the controller cannot be used (until ps2 mode is exited or console rebooted)
 
* As a workaround for above wireless controller issue, you can use an USB2PS2 converter and connect an old PS2 / Dualshock2 controller.
 
==== tests on 2000 series PS3 Slim ====
Testplatform:
SKU: 2000 series slim (minver 2.70)
Firmware: 3.55 'Rogero 3.4' mmap114+peek/poke but no SS-patches
Memorycards: MC:PS1 in slot1, MC:PS2 in slot2.
Mainscreen: Component+Composite 576i+P/720i+P//1080i
Sec.screen: Composite 576i
48 titles tested (PAL disc on PAL SKU) // [[User:Euss|Euss]]
 
* Without Factory Service Mode : gives "Incompatible Data" when inserting PS2 disc
 
* When enabling [https://web.archive.org/web/*/http://ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/private/jp8zhvuocjz95cfrjm0uzg) : no changes in XMB:Game (still only PS upscaler/smoothing, no PS2 mention at all)
 
* When enabling [https://web.archive.org/web/*/http://ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] without factory service mode (patch4 set as http://pastie.org/4355919) : gives XMB:Game PS2 smoothing/upscaling options, it also make an inserted disk to be seen as PS2 format. Still same problem of ¨incompatible title¨ and loss of BT/settings. Also after returning to XMB, it no longer sees the disc as PS2 format but as incompatible data (which suggests the lv2 patch is undone, as lv2 is reloaded when returning from the ps2 lpar)
 
* Using [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] without factory service mode : no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title).
 
* With Factory Service Mode enabled (there are no Xmb options to combinetest with [https://web.archive.org/web/*/http://ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher] or [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg]): gives ´PS2 disc´ detected at disc icon, but starting gives: resetting of date/time/displayoutput (effectively disabling my mainscreen), then all connection to any bound bluetooth device is lost, even when connected via USB (needs multiple PS button reactivation), and after a long while comes up with the message that the title is not compatible and that the ps3 needs to be updated (Basic nag screen that is on BC PS3s when inserting a noncompatible title).
 
In short: [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] and Factory Service Mode seem to enable simulare (it tries to boot it) while [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives you more options e.g. using [https://web.archive.org/web/*/http://ps3devwiki.com/files/devtools/lv2-v9-pkg/ LV2Patcher].
Perhaps hardswapping out all the dev_flash ps2 emu files for the same software only emulator would circumvent the 'incompatible title' message.
 
 
==== Second test: FW 2.70/3.15 ====
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives title not supported error message like "This title is not currently compatible with the PS3 system".
 
==== Third test: FW 3.55 OtherOS++22GB (with SS Patches) ====
Silent Hill : gives disk icon "unsupported data" and error message like "This model of the PS3 system is not compatible with Playstation2 format software" when run via disc icon. Using [https://web.archive.org/web/*/http://ps3devwiki.com/files/OtherOSplusplus/misc/boot_ps2.pkg boot_ps2.pkg] gives blackscreen lockup, not reacting on PS button, or powerbutton, requiring removing powercord.
 
 
===== considering titles to test =====
* http://en.wikipedia.org/wiki/List_of_PlayStation_3_backward_compatible_PlayStation_2_and_PlayStation_games
* http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530
* http://us.playstation.com/support/compatiblestatus/index.htm
 
These have no listed issues:
* Half-Life
* Hulk
* Medal of Honor: Frontline
These have minor issues listed (but should still play):
* Silent Hill 3
* Second Sight
 
==== tests on CECHC04 (partial BC) ====
on 3.41 or on 3.55 in normal XMB mode (no disc icon in XMB): boot_ps2.pkg gives no resetting of date/time/displayoutput (still output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation), and after a long while comes up with the message that the "The system was not turned off properly" as if it had experienced poweroff and from there booted back to XMB. It then returns to the XMB, but first gives an error screen, mentioning 0x80028F17 occured (''PS2 mode error 0x80028F17 "An error occurred during the start operation (80028F17)," PlayStation 2 disc Boot Error, also related to PS1 PSN games.'')
 
on 3.41 or on 3.55 in normal XMB mode (disc icon in XMB): boot_ps2.pkg gives resetting of date/time/displayoutput (no output on mainscreen), but all connection to any bound bluetooth device is lost, even when connected via USB (need PS button reactivation). The game is playable on secondary screen, and exit to XMB with holding PS button goes without 0x80028F17 errors, but does give the "The system was not turned off properly" error.
 
no disc icon:
* Medal of Honor: Rising Sun
* Half-Life
 
disc icon:
* Hulk
* Second Sight
* Silent Hill 3
 
==== Renaming ps2_netemu to ps2_emu ====
 
Tested renaming ps2_netemu.self to ps2_emu.self on CECHB01/rogero 4.21 with dev_blind mounting via multiMAN but boots to black screen, no disc activity, but controller shuts off and is synced. No PS button menu or anything.
 
boot_ps2.pkg boots, no disc activities, then throws up an error depending if the file is resigned for 4.21 or not. (tried both a resigned and the existing version)
 
 
==== PS2 on non BC HW - Tests ====
 
{| class="wikitable sortable"
|-
|-
! rowspan="2" | Title !! rowspan="2" | DiscID !! colspan="2" | Disc Icon !! colspan="3" | ps2_softemu !! rowspan="2" | Remarks
| SAS Anti-terror Force || SLES53435 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
|-
|-
! <abbr title="Normal Mode">Normal</abbr> !! <abbr title="Factory Service Mode">FSM</abbr> !! 2.50 !! 2.60 !! 2.70
| Second Sight || SLES52670 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
|-
|-
| Action Replay MAX || SCED54409 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| Seek and Destroy || SLES51603 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
|-
|-
| Battlefield 2 Modern Combat || SLES53729 ||  || {{ps2dvd}} || ||  || {{no}} ||  
| Silent Hill 3 || SLES51434 ||  || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
|-
|-
| Constantine || SLES52872 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Socom US Navy SEALs || SCES50928 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Demo Disc 3-073-543-11 || PBPX95514 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Socom II US Navy SEALs || SCES51904 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| EyeToy Play || SCES51513 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Socom 3 US Navy SEALs || SCES53300 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| EyeToy Play 2 || SCES52748 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Socom US Navy SEALs Combined Assault || SCES54477 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| EyeToy Play 3 || SLES53315 ||  || {{ps2dvd}} || ||  || {{no}} ||  
| Swap Magic 3 plus (PAL version 3.6) CD || SCED54409 ||  || {{no}} || - ||  || {{no}} ||  
|-
|-
| Freedom Fighters || SLES51467 ||  || {{ps2dvd}} || ||  || {{no}} ||  
| Swap Magic 3 plus (PAL version 3.6) DVD || SCED54409 ||  || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
|-
|-
| Ghost in the Shell Standalone Complex || SLES53020 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Tenchu Wrath of Heaven || SLES50679 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| GoldenEye Rogue Agent || SLES52974 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Terminator 3 Rise of the Machines || SLES52152 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Guerrilla Strike || SLES53344 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| The Great Escape || SLES51315 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Gunfighter 2 Revenge of Jessy James || SLES51289 ||  || {{ps2cd}} || ||  || {{no}} ||  
| The Hulk || SLES51508 ||  || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
|-
|-
| Half Life || SLES50504 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| The Matrix Path of Neo || SLES53799 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| HDLoader || - ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| The Plan || SLES53965 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
|-
|-
| International Golf Pro || SLES52349 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| Time Crisis 3 || SCES51844 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Jet Ion GP || SLES50544 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| Tom Clancy's Ghost Recon || SLES51181 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| killer7 || SLES53366 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Tom Clancy's Rainbow Six 3 || SLES52288 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Kya Dark Lineage || SLES51473 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Tom Clancy's Splinter Cell || SLES51466 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| London Racer Destruction Madness || SLES53654 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| Tom Clancy's Splinter Cell Chaos Theory || SLES53007 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| London Racer Police Madness || SLES53536 ||  || {{ps2cd}} ||  ||  || {{no}} ||  
| Tom Clancy's Splinter Cell Pandora Tomorrow || SLES52149 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Manhunt || SLES52023 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
| Trapt || SLES53824 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
|-
|-
| Max Play - 10 Classic Retro Games || - ||  || {{ps2cd}} ||  ||  || {{no}} ||  
|}
 
==== Tests on NON-BC CECHP01/NTSC-U (Firmware 2.60/boot_ps2.pkg) ====
<br>
<br>Amplitude - Intro prompts are completely glitched, unresponsive to controller input.
<br>Backyard Football 2007 - Graphical glitches during menu and gameplay. Frame rate is okay.
<br>Boogie - Intro FMV runs very slow, fails to recognize input after the title screen.
<br>MLB 08: The Show - Intro videos run smoothly. Menus load with no issue. Gameplay is extremely slow with graphical glitches. Network configuration utility is completely garbled.
 
-- Moose
 
Comparative listings: http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530
 
=== LIMG Table ===
PS2 Classics, help to fill please (only working titles please)
 
{| class="wikitable"
|-
|-
| Medal of Honor European Assault || SLES53332 ||  || {{ps2dvd}} ||  ||  || {{no}} ||  
! rowspan="2" | Name of Game !! rowspan="2" | DiscID !! colspan="4" | LIMG
|-
|-
| Medal of Honor Frontline || SLES50684 ||  || {{ps2dvd}} ||  ||  || {{no}} ||
! magic<br /><small>ascii("LIMG")</small> !! disctype<br /><small>0x01 DVD<br />&nbsp;&nbsp;&nbsp;or<br/>0x02 CD</small> !! Size<br /><small>sector count</small> !! sector size<br /><small>0x800 (DVD)<br />&nbsp;&nbsp;&nbsp;or<br/>0x930 (CD)</small>
|-
|-
| Medal of Honor Rising Sun || SLES51873 || || {{ps2dvd}} || || || {{no}} ||  
| Baroque || || || || ||  
|-
|-
| Medal of Honor Vanguard || SLES54683 || || {{ps2dvd}} || || || {{no}} ||  
| Bloodrayne || || || || ||  
|-
|-
| Men in Black II Alien Escape || SLES50789 || || {{ps2dvd}} || ||  || {{no}} ||  
| Bloodrayne 2 || || || || ||  
|-
|-
| Network Access Disc || SCES51578 || || {{ps2dvd}} || || || {{no}} ||  
| Bully || || || || ||  
|-
|-
| OPM #66 || SCED54409 || || {{ps2dvd}} || || || {{no}} ||  
| Capcom Fighting Jam || || || || ||  
|-
|-
| OPM #67 || SCED54410 || || {{ps2dvd}} || || || {{no}} ||  
| Capcom Vs SNK 2 Millionaire Fighting 2001 || || || || ||  
|-
|-
| OPM #68 || SCED54412 || || {{ps2dvd}} || ||  || {{no}} ||  
| Castlevania Lament Of Innocence || || || || ||  
|-
|-
| OPM #69 || SCED54413 || || {{ps2dvd}} || || || {{no}} ||  
| Chulip || || || || ||  
|-
|-
| OPM #70 || SCED54415 || || {{ps2dvd}} || || || {{no}} ||  
| Dark Cloud || || || || ||  
|-
|-
| OPM #72 || SCED54417 || || {{ps2dvd}} || || || {{no}} ||  
| Dead or Alive 2 Hardcore || || || || ||  
|-
|-
| OPM #73 || SCED54418 || || {{ps2dvd}} || || || {{no}} ||  
| Deadly Strike || || || || ||  
|-
|-
| OPM #74 || SCED55113 || || {{ps2dvd}} || || || {{no}} ||  
| Deus Ex || || || || ||  
|-
|-
| OPM #75 || SCED55114 || || {{ps2dvd}} || ||  || {{no}} ||  
| Digimon World 4 || || || || ||  
|-
|-
| OPM #77 || SCED55117 || || {{ps2dvd}} || ||  || {{no}} ||  
| Dirt Track Devils || NPED00032 || 4C 49 4D 47 || 00 00 00 02 || 00 01 59 11 || 00 00 09 30
|-
|-
| OPM #79 || SCED55119 || || {{ps2dvd}} || || || {{no}} ||  
| Disgaea Hour of Darkness || NPUD21397 || 4C 49 4D 47 || 00 00 00 01 || 00 0A A4 E0 || 00 00 08 00
|-
|-
| Perfect Ace Pro Tournament Tennis || SLES51735 || || {{ps2cd}} || ||  || {{no}} ||  
| Disgaea 2 Cursed Memories || || || || ||  
|-
|-
| Prisoner of War || SLES50397 || || {{ps2dvd}} || || || {{no}} ||  
| Doras Big Birthday Adventure || || || || ||  
|-
|-
| Ratchet & Clank 3 || SCES52456 || || {{ps2dvd}} || || || {{no}} ||  
| Dragon Force || || || || ||  
|-
|-
| Red Baron || SLES53434 || || {{ps2cd}} || ||  || {{no}} ||  
| Drakengard || || || || ||  
|-
|-
| SAS Anti-terror Force || SLES53435 || || {{ps2cd}} || ||  || {{no}} ||  
| Dynamite Cop || || || || ||  
|-
|-
| Second Sight || SLES52670 || || {{ps2dvd}} || || || {{no}} ||  
| Eternal Quest || || || || ||  
|-
|-
| Seek and Destroy || SLES51603 || || {{ps2cd}} || ||  || {{no}} ||  
| Fantavision || || || || ||  
|-
|-
| Silent Hill 3 || SLES51434 || || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
| Final Fantasy VII: Dirge of Cerberus || || || || ||  
|-
|-
| Socom US Navy SEALs || SCES50928 || || {{ps2dvd}} || ||  || {{no}} ||  
| Final Fantasy X || || || || ||  
|-
|-
| Socom II US Navy SEALs || SCES51904 || || {{ps2dvd}} || ||  || {{no}} ||  
| Final Fantasy XII || || || || ||  
|-
|-
| Socom 3 US Navy SEALs || SCES53300 || || {{ps2dvd}} || ||  || {{no}} ||  
| Football Generation || NPED00028 || 4C 49 4D 47 || 00 00 00 02 || 00 03 C7 43 || 00 00 09 30
|-
|-
| Socom US Navy SEALs Combined Assault || SCES54477 || || {{ps2dvd}} || ||  || {{no}} ||  
| God Hand || || || || ||  
|-
|-
| Swap Magic 3 plus (PAL version 3.6) CD || SCED54409 ||  || {{no}} || - || || {{no}} ||  
| Gran Turismo 4 || || || || ||
|-
| Grand Theft Auto: Vice City || NPUD20552 || 4C 49 4D 47 || 00 00 00 01 || 00 1C 97 80 || 00 00 08 00
|-
| Grand Theft Auto III || || || || ||
|-
| Grand Theft Auto San Andreas || || || || ||
|-
| GRIMgRiMoiRe || || || || ||
|-
| Gun Grave Overdose || || || || ||
|-
| Just Cause || || || || ||
|-
| Katamari Damacy || || || || ||  
|-
|-
| Swap Magic 3 plus (PAL version 3.6) DVD || SCED54409 || || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
| Kingdom Hearts 1 || || || || ||  
|-
|-
| Tenchu Wrath of Heaven || SLES50679 || || {{ps2dvd}} || ||  || {{no}} ||  
| Kingdom Hearts 2 || || || || ||  
|-
|-
| Terminator 3 Rise of the Machines || SLES52152 || || {{ps2dvd}} || ||  || {{no}} ||  
| Max Payne || || || || ||  
|-
|-
| The Great Escape || SLES51315 || || {{ps2dvd}} || ||  || {{no}} ||  
| Maximo || || || || ||  
|-
|-
| The Hulk || SLES51508 || || {{ps2dvd}} || {{yes}} ||  || {{no}} ||  
| Mega Man X8 || || || || ||  
|-
|-
| The Matrix Path of Neo || SLES53799 || || {{ps2dvd}} || ||  || {{no}} ||  
| Midnight Club 3 DUB Edition REMIX || || || || ||  
|-
|-
| The Plan || SLES53965 || || {{ps2cd}} || ||  || {{no}} ||  
| Neo Contra || || || || ||  
|-
|-
| Time Crisis 3 || SCES51844 || || {{ps2dvd}} || ||  || {{no}} ||  
| Odin Sphere || || || || ||  
|-
|-
| Tom Clancy's Ghost Recon || SLES51181 || || {{ps2dvd}} || ||  || {{no}} ||  
| Persona 3 FES || || || || ||  
|-
|-
| Tom Clancy's Rainbow Six 3 || SLES52288 || || {{ps2dvd}} || ||  || {{no}} ||  
| Persona 4 || || || || ||  
|-
|-
| Tom Clancy's Splinter Cell || SLES51466 || || {{ps2dvd}} || ||  || {{no}} ||  
| Phantasy Star Complete Collection || || || || ||  
|-
|-
| Tom Clancy's Splinter Cell Chaos Theory || SLES53007 || || {{ps2dvd}} || ||  || {{no}} ||  
| Pool Shark 2 || || || || ||  
|-
|-
| Tom Clancy's Splinter Cell Pandora Tomorrow || SLES52149 || || {{ps2dvd}} || ||  || {{no}} ||  
| Primal || || || || ||  
|-
|-
| Trapt || SLES53824 || || {{ps2dvd}} || ||  || {{no}} ||  
| Psychonauts || NPUD21120 || 4C 49 4D 47 || 00 00 00 01 || 00 1A 2F 00 || 00 00 08 00
|-
|-
|}
| Rayman 2 Revolution || || || || ||  
 
|-
==== Tests on NON-BC CECHP01/NTSC-U (Firmware 2.60/boot_ps2.pkg) ====
| Raw Danger || || || || ||  
<br>
<br>Amplitude - Intro prompts are completely glitched, unresponsive to controller input.
<br>Backyard Football 2007 - Graphical glitches during menu and gameplay. Frame rate is okay.
<br>Boogie - Intro FMV runs very slow, fails to recognize input after the title screen.
<br>MLB 08: The Show - Intro videos run smoothly. Menus load with no issue. Gameplay is extremely slow with graphical glitches. Network configuration utility is completely garbled.
 
-- Moose
 
Comparative listings: http://tortuga-cove.com/forums/viewtopic.php?f=57&t=530
 
==Hidden/Inaccessible menu in ps2_emu==
 
Apparently PS2EMU (CECH A/B) have some hidden menu that is able to print IOP configs from bios (XPARAM.ELF), i didn't found way to get there, my only idea is replacing other menu with that one in jump case at 0x5D980 (emu around 4.78). Case 21, and 22 is what seems to be hidden menu.
More info about printed data: https://www.psdevwiki.com/ps3/PS2_Emulation#TitleID.2FDiscID_in_ps2_netemu.self
 
==Crazy Taxi check==
Emulators ps2_netemu, and ps2_gxemu (maybe others too), after calculating game hash perform compare check to 0x2BD12D81ED.
ID match US release of Crazy Taxi. This id is kinda special, because Swap Magic CD version, and some other Datel products like Action Replay use Crazy Taxi TOC in their retail discs.
Is known that they literally ripped part of disc (with key/logo, and TOC), and frankesteined it with own products.
So mentioned check first compare hash, and if that match, then run function that perform another check at disc sector 267559 (0x41527), so exactly where main executable is.
I didn't figured out what next, but this is probably anti AR/Datel/SM check. What's weird, there seems to be nothing for TimeSplitters2 which if i recall correctly was used for DVD version of Swap Magic.
<br>There is also check for 0xE794CCB06D  PCPX_980.42  Minna no Tennis entry, emu also refuse to boot it, and throw the same error as with SwapMagic/SCED discs.
 
==CDVD Commands==
===Netemu===
<pre>
4.75 and up.
 
Supported CDVD N Commands:
 
opd_ptr  num  name
0x934AB0 0x00: N_CD_NOP
0x934AB8 0x01: N_CD_RESET
0x934AC0 0x02: N_CD_STANDBY
0x934AC8 0x03: N_CD_STOP
0x934AD0 0x04: N_CD_PAUSE
0x934AD8 0x05: N_CD_SEEK
0x934AE0 0x06: N_CD_READ
0x934AE8 0x07: N_CD_READ_CDDA
0x934AF0 0x08: N_DVD_READ
0x934AF8 0x09: N_CD_GET_TOC
0x934B00 0x0A: N_CMD_A                      panic
0x934B08 0x0B: N_CMD_B                      panic
0x934B10 0x0C: N_CD_READ_KEY
0x934B18 0x0D: N_CMD_D                      panic
any command above 0x0D                      panic
 
Supported CDVD S Commands:
 
opd_ptr  num  name
0x934B20 0x00: SCMD_Return_0
0x934B28 0x01: SCMD_GetDiscType            panic
0x934B30 0x02: SCMD_CdReadSubQ              panic
0x934B38 0x03: SCMD_Mecacon_command        (support 0x00, 0x01 ,0x30, 0x45 sub cmds)
0x934B40 0x04: SCMD_0x04                    panic
0x934B48 0x05: SCMD_CdTrayReqState
0x934B50 0x06: SCMD_CdTrayCtrl
0x934B58 0x07: SCMD_0x07                    panic
0x934B60 0x08: SCMD_CdReadRTC
0x934B68 0x09: SCMD_sceCdWriteRTC
0x934B70 0x0A: SCMD_sceCdReadNVM            panic
0x934B78 0x0B: SCMD_sceCdWriteNVM          panic
0x934B80 0x0C: SCMD_0x0C                    panic
0x934B88 0x0D: SCMD_0x0D                    panic
0x934B90 0x0E: SCMD_0x0E                    panic
0x934B98 0x0F: SCMD_sceCdPowerOff
0x934BA0 0x10: SCMD_0x10                    panic
0x934BA8 0x11: SCMD_0x11                    panic
0x934BB0 0x12: SCMD_sceCdReadILinkId        return zeroed iLinkId
0x934BB8 0x13: SCMD_sceCdWriteILinkID      panic
0x934BC0 0x14: SCMD_CdCtrlAudioDigitalOut  panic
0x934BC8 0x15: SCMD_sceCdForbidDVDP
0x934BD0 0x16: SCMD_AutoAdjustCtrl
0x934BD8 0x17: SCMD_CdReadModelNumber      Return SCPH-50000 (SCMD 0x03(0x00) return Mechacon version 3.9 which is wrong for that model..)
0x934BE0 0x18: SCMD_CdWriteModelNumber      panic
0x934BE8 0x19: SCMD_0x19                    panic
0x934BF0 0x1A: SCMD_sceCdBootCertify
0x934BF8 0x1B: SCMD_sceCdCancelPOffRdy
0x934C00 0x1C: SCMD_sceCdBlueLEDCtl
0x934C08 0x1D: SCMD_cdvdman_call116
0x934C10 0x1E: SCMD_sceRemote2Read
0x934C18 0x1F: SCMD_sceRemote2_7
0x934C20 0x20: SCMD_Return_0
0x934C28 0x21: SCMD_Return_0
0x934C30 0x22: SCMD_Return_0
0x934C38 0x23: SCMD_Return_0
0x934C40 0x24: SCMD_Return_0
0x934C48 0x25: SCMD_Return_0
0x934C50 0x26: SCMD_Return_0
0x934C58 0x27: SCMD_Return_0
0x934C60 0x28: SCMD_Return_0
0x934C68 0x29: SCMD_sceCdNoticeGameStart    panic
0x934C70 0x2A: SCMD_Return_0
0x934C78 0x2B: SCMD_Return_0
0x934C80 0x2C: SCMD_Return_0
0x934C88 0x2D: SCMD_Return_0
0x934C90 0x2E: SCMD_Return_0
0x934C98 0x2F: SCMD_Return_0
0x934CA0 0x30: SCMD_Return_0
0x934CA8 0x31: SCMD_Return_0
0x934CB0 0x32: SCMD_Return_0
0x934CB8 0x33: SCMD_Return_0
0x934CC0 0x34: SCMD_Return_0
0x934CC8 0x35: SCMD_Return_0
0x934CD0 0x36: SCMD_Return_0
0x934CD8 0x37: SCMD_Return_0
0x934CE0 0x38: SCMD_Return_0
0x934CE8 0x39: SCMD_Return_0
0x934CF0 0x3A: SCMD_Return_0
0x934CF8 0x3B: SCMD_Return_0
0x934D00 0x3C: SCMD_Return_0
0x934D08 0x3D: SCMD_Return_0
0x934D10 0x3E: SCMD_Return_0
0x934D18 0x3F: SCMD_Return_0
0x934D20 0x40: SCMD_CdOpenConfig
0x934D28 0x41: SCMD_CdReadConfig
0x934D30 0x42: SCMD_CdWriteConfig
0x934D38 0x43: SCMD_CdCloseConfig
0x934D40 0x44: SCMD_Return_0
0x934D48 0x45: SCMD_Return_0
0x934D50 0x46: SCMD_Return_0
0x934D58 0x47: SCMD_Return_0
0x934D60 0x48: SCMD_Return_0
0x934D68 0x49: SCMD_Return_0
0x934D70 0x4A: SCMD_Return_0
0x934D78 0x4B: SCMD_Return_0
0x934D80 0x4C: SCMD_Return_0
0x934D88 0x4D: SCMD_Return_0
0x934D90 0x4E: SCMD_Return_0
0x934D98 0x4F: SCMD_Return_0
0x934DA0 0x50: SCMD_Return_0
0x934DA8 0x51: SCMD_Return_0
0x934DB0 0x52: SCMD_Return_0
0x934DB8 0x53: SCMD_Return_0
0x934DC0 0x54: SCMD_Return_0
0x934DC8 0x55: SCMD_Return_0
0x934DD0 0x56: SCMD_Return_0
0x934DD8 0x57: SCMD_Return_0
0x934DE0 0x58: SCMD_Return_0
0x934DE8 0x59: SCMD_Return_0
0x934DF0 0x5A: SCMD_Return_0
0x934DF8 0x5B: SCMD_Return_0
0x934E00 0x5C: SCMD_Return_0
0x934E08 0x5D: SCMD_Return_0
0x934E10 0x5E: SCMD_Return_0
0x934E18 0x5F: SCMD_Return_0
0x934E20 0x60: SCMD_Return_0
0x934E28 0x61: SCMD_Return_0
0x934E30 0x62: SCMD_Return_0
0x934E38 0x63: SCMD_Return_0
0x934E40 0x64: SCMD_Return_0
0x934E48 0x65: SCMD_Return_0
0x934E50 0x66: SCMD_Return_0
0x934E58 0x67: SCMD_Return_0
0x934E60 0x68: SCMD_Return_0
0x934E68 0x69: SCMD_Return_0
0x934E70 0x6A: SCMD_Return_0
0x934E78 0x6B: SCMD_Return_0
0x934E80 0x6C: SCMD_Return_0
0x934E88 0x6D: SCMD_Return_0
0x934E90 0x6E: SCMD_Return_0
0x934E98 0x6F: SCMD_Return_0
0x934EA0 0x70: SCMD_Return_0
0x934EA8 0x71: SCMD_Return_0
0x934EB0 0x72: SCMD_Return_0
0x934EB8 0x73: SCMD_Return_0
0x934EC0 0x74: SCMD_Return_0
0x934EC8 0x75: SCMD_Return_0
0x934ED0 0x76: SCMD_Return_0
0x934ED8 0x77: SCMD_Return_0
0x934EE0 0x78: SCMD_Return_0
0x934EE8 0x79: SCMD_Return_0
0x934EF0 0x7A: SCMD_Return_0
0x934EF8 0x7B: SCMD_Return_0
0x934F00 0x7C: SCMD_Return_0
0x934F08 0x7D: SCMD_Return_0
0x934F10 0x7E: SCMD_Return_0
0x934F18 0x7F: SCMD_Return_0
0x934F20 0x80: SCMD__mechacon_auth_0x80
0x934F28 0x81: SCMD__mechacon_auth_0x81
0x934F30 0x82: SCMD__mechacon_auth_0x82
0x934F38 0x83: SCMD__mechacon_auth_0x83
0x934F40 0x84: SCMD__mechacon_auth_0x84
0x934F48 0x85: SCMD__mechacon_auth_0x85
0x934F50 0x86: SCMD__mechacon_auth_0x86
0x934F58 0x87: SCMD__mechacon_auth_0x87
0x934F60 0x88: SCMD__mechacon_auth_0x88
0x934F68 0x89: SCMD_Return_0
0x934F70 0x8A: SCMD_Return_0
0x934F78 0x8B: SCMD_Return_0
0x934F80 0x8C: SCMD_Return_0
0x934F88 0x8D: SCMD_Return_0
0x934F90 0x8E: SCMD_Return_0
0x934F98 0x8F: SCMD__mechacon_auth_0x8F
 
Notes:
N commands handling differ a lot from pcsx2, doing that correctly is important for emulation.
Read model number return SCPH-50000 while returned mechacon version is (not existing?) 3.9.
This model should return Dragon mechacon rev, so 5.0 and up.
Returned ConsoleID is 00 00 00 00 00 00 00 00 00, this can be issue in corner case where game additionally check for non zero result.
Returned iLinkID is 00 00 00 00 00 00 00 00 00, this break Time Crisis 2,3, and one of Armored Core games on pcsx2, surprisingly netemu run them fine.
Every "mechacon_auth" command return zeroed result with different size. Only exception here is 0x81 which return 1.
</pre>
 
==r5900 regs memory map==
Registers are updated only when recompiler flush them to memory, if there is pending operation on the same register in next instruction, recompiler have no need to update reg before that. So it flush result there.
===Netemu===
Address in memory | r5900 register
FFFFFFFFFFFF8980  | 5900_zero_upper64bits
FFFFFFFFFFFF8988  | 5900_zero_lower64bits
FFFFFFFFFFFF8990  | 5900_at_reg_upper64
FFFFFFFFFFFF8998  | 5900_at_reg_lower64
FFFFFFFFFFFF89A0  |  5900_v0_reg_upper64
FFFFFFFFFFFF89A8  | 5900_v0_reg_lower64
FFFFFFFFFFFF89B0  | 5900_v1_reg_upper64
FFFFFFFFFFFF89B8  | 5900_v1_reg_lower64
FFFFFFFFFFFF89C0  | 5900_a0_reg_upper64
FFFFFFFFFFFF89C8  | 5900_a0_reg_lower64
FFFFFFFFFFFF89D0  | 5900_a1_reg_upper64
FFFFFFFFFFFF89D8  |  5900_a1_reg_lower64
FFFFFFFFFFFF89E0  |  5900_a2_reg_upper64
FFFFFFFFFFFF89E8  |  5900_a2_reg_lower64
FFFFFFFFFFFF89F0  |  5900_a3_reg_upper64
FFFFFFFFFFFF89F8  |  5900_a3_reg_lower64
FFFFFFFFFFFF8A00  |  5900_t0_reg_upper64
FFFFFFFFFFFF8A08  |  5900_t0_reg_lower64
FFFFFFFFFFFF8A10  |  5900_t1_reg_upper64
FFFFFFFFFFFF8A18  |  5900_t1_reg_lower64
FFFFFFFFFFFF8A20  |  5900_t2_reg_upper64
FFFFFFFFFFFF8A28  |  5900_t2_reg_lower64
FFFFFFFFFFFF8A30  |  5900_t3_reg_upper64
FFFFFFFFFFFF8A38  |  5900_t3_reg_lower64
FFFFFFFFFFFF8A40  |  5900_t4_reg_upper64
FFFFFFFFFFFF8A48  |  5900_t4_reg_lower64
FFFFFFFFFFFF8A50  |  5900_t5_reg_upper64
FFFFFFFFFFFF8A58  | 5900_t5_reg_lower64
FFFFFFFFFFFF8A60  | 5900_t6_reg_upper64
FFFFFFFFFFFF8A68  | 5900_t6_reg_lower64
FFFFFFFFFFFF8A70  | 5900_t7_reg_upper64
FFFFFFFFFFFF8A78  | 5900_t7_reg_lower64
FFFFFFFFFFFF8A80  | 5900_s0_reg_upper64
FFFFFFFFFFFF8A88  | 5900_s0_reg_lower64
FFFFFFFFFFFF8A90  | 5900_s1_reg_upper64
FFFFFFFFFFFF8A98  | 5900_s1_reg_lower64
FFFFFFFFFFFF8AA0  | 5900_s2_reg_upper64
FFFFFFFFFFFF8AA8  | 5900_s2_reg_lower64
FFFFFFFFFFFF8AB0  |  5900_s3_reg_upper64
FFFFFFFFFFFF8AB8  |  5900_s3_reg_lower64
FFFFFFFFFFFF8AC0  |  5900_s4_reg_upper64
FFFFFFFFFFFF8AC8  |  5900_s4_reg_lower64
FFFFFFFFFFFF8AD0  |  5900_s5_reg_upper64
FFFFFFFFFFFF8AD8  |  5900_s5_reg_lower64
FFFFFFFFFFFF8AE0  |  5900_s6_reg_upper64
FFFFFFFFFFFF8AE8  |  5900_s6_reg_lower64
FFFFFFFFFFFF8AF0  |  5900_s7_reg_upper64
FFFFFFFFFFFF8AF8  |  5900_s7_reg_lower64
FFFFFFFFFFFF8B00  |  5900_t8_reg_upper64
FFFFFFFFFFFF8B08  |  5900_t8_reg_lower64
FFFFFFFFFFFF8B10  |  5900_t9_reg_upper64
FFFFFFFFFFFF8B18  |  5900_t9_reg_lower64
FFFFFFFFFFFF8B20  |  5900_k0_reg_upper64
FFFFFFFFFFFF8B28  |  5900_k0_reg_lower64
FFFFFFFFFFFF8B30  |  5900_k1_reg_upper64
FFFFFFFFFFFF8B38  |  5900_k1_reg_lower64
FFFFFFFFFFFF8B40  |  5900_gp_reg_upper64
FFFFFFFFFFFF8B48  |  5900_gp_reg_lower64
FFFFFFFFFFFF8B50  |  5900_sp_reg_upper64
FFFFFFFFFFFF8B58  |  5900_sp_reg_lower64
FFFFFFFFFFFF8B60  |  5900_fp_reg_upper64
FFFFFFFFFFFF8B68  |  5900_fp_reg_lower64
FFFFFFFFFFFF8B70  |  5900_ra_reg_upper64
FFFFFFFFFFFF8B78  |  5900_ra_reg_lower64
FFFFFFFFFFFF9100  |  5900_pc_reg_lower64
Below FFFFFFFFFFFF8B78 you can find COP0, and finally VFxx, and VIxx regs. Todo..
 
==EE I/O Handlers list==
===Netemu===
4.75 and up. Mode (1 = read / 2 = write)
 
{| class="wikitable sortable"
!mode !! size !! PS2_HW_REG !! handler_opd
|-
|-
| 1 || 4 || T0_COUNT || stru_723218
| Red Dead Revolver  || || || || ||  
|-
|-
| 2 || 4 || T0_COUNT || stru_723290
| Red Faction || || || || ||  
|-
|-
| 1 || 4 || T0_MODE || stru_723308
| Red Faction 2 || || || || ||  
|-
|-
| 2 || 4 || T0_MODE || stru_7233E0
| Ring of Red || || || || ||  
|-
|-
| 1 || 4 || T0_COMP || stru_7231A0
| Room Zoom - Race for Impact || || || || ||  
|-
|-
| 2 || 4 || T0_COMP || stru_723248
| Rygar - The Legendary Adventure || || || || ||  
|-
|-
| 1 || 4 || T0_HOLD || stru_723110
| Shinobi || || || || ||  
|-
|-
| 2 || 4 || T0_HOLD || stru_723128
| Silent Hill - The Room || || || || ||  
|-
|-
| 1 || 4 || T1_COUNT || stru_7232F0
| Siren || || || || ||  
|-
|-
| 2 || 4 || T1_COUNT || stru_7233B0
| Skyscraper || || || || ||  
|-
|-
| 1 || 4 || T1_MODE || stru_723278
| Sonic Heroes || || || || ||  
|-
|-
| 2 || 4 || T1_MODE || stru_723260
| Syphon Filter The Omega Strain || || || || ||  
|-
|-
| 1 || 4 || T1_COMP || stru_723140
| The King of Fighters XI || || || || ||  
|-
|-
| 2 || 4 || T1_COMP || stru_723380
| The Sniper 2 || || || || ||
|-
|-
| 1 || 4 || T1_HOLD || stru_7231E8
| Tourist Trophy || || || || ||  
|-
|-
| 2 || 4 || T1_HOLD || stru_723200
| Twisted Metal Black || || || || ||  
|-
|-
| 1 || 4 || T2_COUNT || stru_7232D8
| War of the Monsters || || || || ||  
|-
|-
| 2 || 4 || T2_COUNT || stru_723398
|}
=== Playstation 2 widescreen patches ===
 
Some PS2 games can be edited in ISO form to allow 16:9 screen output using hex editing, or by applying ppf patches. Games work fine on PS3 with same compatibility like before patching. Also some 480p (aka progressive scan) patches work fine.
Source: http://ps2wide.net/
 
* People should use the CONFIG file, it allows patching without touching the ISO. - [[User:Mysis|Mysis]]
 
== Games Compatibility ==
=== PS2/PStwo Games Compatibility ===
 
==== 0-9 ====
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
|- bgcolor="#cccccc"
! Title !! ps2<br />emu !! ps2<br />gxemu !! ps2<br />softemu !! Other !! Notes
|-
|-
| 1 || 4 || T2_MODE || stru_723338
| .hack//G.U. vol. 1//Rebirth || || ||  ||  ||  
|-
|-
| 2 || 4 || T2_MODE || stru_723410
| .hack//G.U. Vol. 1: Saitan|.hack//G.U. vol. 1//Rebirth || ||  ||  ||  ||  
|-
|-
| 1 || 4 || T2_COMP || stru_7231D0
| .hack//G.U. Vol. 2: Kimi Omou Koe / .hack//G.U. Vol. 2: Kimi Omou Koe|.hack//G.U. vol. 2//Reminisce + PS2 The Best Re-release || ||  ||  ||  ||  
|-
|-
| 2 || 4 || T2_COMP || stru_723368
| .hack//G.U. Vol. 3: Aruku Youna Hayasa de / .hack//G.U. Vol. 3: Aruku Youna Hayasa de|.hack//G.U. vol. 3//Redemption + PS2 The Best Re-release || ||  ||  ||  ||  
|-
|-
| 1 || 4 || T3_COUNT || stru_7232C0
| .hack//Kansen Kakudai Vol. 1/ .hack//Infection || || ||  ||  ||  
|-
|-
| 2 || 4 || T3_COUNT || stru_7233C8
| .hack//Akushou Heni Vol. 2/ .hack//Mutation || || ||  ||  ||  
|-
|-
| 1 || 4 || T3_MODE || stru_723320
| .hack//Shinshoku Osen Vol. 3/ .hack//Outbreak || || ||  ||  ||  
|-
|-
| 2 || 4 || T3_MODE || stru_7233F8
| .hack//Zettai Houi Vol. 4/ .hack//Quarantine Part 4 || ||  ||  || ||  
|-
|-
| 1 || 4 || T3_COMP || stru_7231B8
| .hack//Vol. 1 x Vol. 2 Re-release of Vol 1+2 ||  ||  || || ||  
|-
|-
| 2 || 4 || T3_COMP || stru_723350
| .hack//Vol. 3 x Vol. 4 Re-release of Vol 3+4 || ||  ||  || ||  
|-
|-
| 1 || 8 || IPU_CMD || stru_721910
| 0 Story || || ||  ||  ||  
|-
|-
| 2 || 8 || IPU_CMD || stru_7218F8
| 10,000 Bullets ( Tsukiyo ni Saraba in Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || IPU_CTRL || stru_721970
| 120-en no Haru: 120 Yen Stories || || ||  ||  ||  
|-
|-
| 2 || 4 || IPU_CTRL || stru_721958
| 12Riven - The Psi-Climinal of Integral || || ||  ||  ||  
|-
|-
| 1 || 4 || IPU_BP || stru_721940
| 12Riven - The Psi-Climinal of Integral(Soundtrack Edition) || || ||  ||  ||  
|-
|-
| 1 || 8 || IPU_TOP || stru_721928
| 18 Wheeler American Pro Trucker || || ||  ||  ||  
|-
|-
| 2 || 4 || GIF_CTRL || stru_7220C0
| 187 Ride or Die || || ||  ||  ||  
|-
|-
| 2 || 4 || GIF_MODE || stru_7220A8
| 1945 I&II The Arcade Games ( Psikyo Shooting Collection Vol. 1 Strikers 1945 I+II in Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_STAT || stru_722000
| 2002 FIFA World Cup || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_TAG0 || stru_721EB0
| 2003-Toshi Kaimaku - Ganbare Kyuukaiou || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_TAG1 || stru_721FE8
| 21 Card Games || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_TAG2 || stru_721FD0
| 24: The Game || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_TAG3 || stru_721FB8
| 24: The Game Greatest Hits / Platinum Re-Releases || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_CNT || stru_721EC8
| 25 to Life || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_P3CNT || stru_721EE0
| 3LDK - Shiawase ni Narouyo || || ||  ||  ||  
|-
|-
| 1 || 4 || GIF_P3TAG || stru_721EF8
| 3LDK - Shiawase ni Narouyo Limited Edition || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_STAT || stru_721820
| 3-Nen B-Gumi Kinpachi Sensei Densetsu no Kyoudan ni Tate! || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF0_FBRST || stru_721868
| 3-Nen B-Gumi Kinpachi Sensei Densetsu no Kyoudan ni Tate!(Complete Edition) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_ERR || stru_7217A8
| 4x4 EVO 2 || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF0_ERR || stru_721598
| 50 Cent Bulletproof || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_MARK || stru_721790
| 50 Cent Bulletproof Greatest Hits / Platinum Re-Releases || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF0_MARK || stru_7215B0
| 7 Blades ( Seven Blades in Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_CYCLE || stru_721778
| 7 Sins || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_MODE || stru_721760
| 7 Wonders of the Ancient World || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_NUM || stru_721748
|}
==== A ====
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
|- bgcolor="#cccccc"
! Title !! ps2<br />emu !! ps2<br />gxemu !! ps2<br />softemu !! Other !! Notes
|-
|-
| 1 || 4 || VIF0_MASK || stru_721730
| A-Ressha de Ikou 2001 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_CODE || stru_721718
| A-Ressha de Ikou 2001 Perfect Set || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_ITOPS || stru_721700
| A6: A-Ressha de Ikou 6/ A-Train 6 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_ITOP || stru_7216E8
| A.C.E.: Another Century's Episode + "PlayStation2 the Best" Re-Release || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_R0 || stru_7216D0
| A.C.E.: Another Century's Episode 2 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_R1 || stru_7216B8
| A.C.E.: Another Century's Episode 2 (Special Vocal Version) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_R2 || stru_7216A0
| A.C.E.: Another Century's Episode 3: The Final || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_R3 || stru_721688
| Aa Megami-sama+ "Holy Box Edition" + "Best Collection "Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_C0 || stru_721670
| Abarenbou Princess || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_C1 || stru_721658
| AC/DC Live: Rock Band Track Pack || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_C2 || stru_721640
| Ace Combat 04: Shattered Skies/ Distant Thunder || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF0_C3 || stru_721628
| Ace Combat 04: Shattered Skies/ Distant Thunder Re-Releases PS2 The Best/Greatest Hits || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_STAT || stru_722960
| Ace Combat 5: The Unsung War/Ace Combat: Squadron Leader || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF1_STAT || stru_722618
| Ace Combat 5: The Unsung War/Ace Combat: Squadron Leader Re-Releases Greatest Hits/PS2 The Best/Big Hits || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF1_FBRST || stru_722A98
| Ace Combat Zero: The Belkan War + Re-release (PS2 The Best) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_ERR || stru_722948
| Ace Lightning || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF1_ERR || stru_722630
| Aces of War Original name: Zero Shikikan Josentoki in Japan || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_MARK || stru_722930
| Action Girlz Racing || || ||  ||  ||  
|-
|-
| 2 || 4 || VIF1_MARK || stru_722648
| Action Man ATOM: Alpha Teens on Machines || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_CYCLE || stru_722918
| Activision Anthology || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_MODE || stru_722900
| Adiboo and the Energy Thieves || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_NUM || stru_7228E8
| ADK Tamashii || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_MASK || stru_7228D0
| Adventure of Tokyo Disney Sea || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_CODE || stru_7228B8
| Adventures of Cookie & Cream Original Name: Kuri Kuri Mix (JP/EU) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_ITOPS || stru_7228A0
| Adventures of Darwin Original Name: Simple 2000 Series Vol. 99: The Genshijin EU Name = Darwin || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_BASE || stru_722888
| Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies,The || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_OFST || stru_722870
| Æon Flux || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_TOPS || stru_722858
| Aero Dancing 4: New Generation (Japan)/Aero Elite: Combat Academy(USA) + "Sega The Best" Re-release (Japan) ||  || ||| ||  
|-
|-
| 1 || 4 || VIF1_ITOP || stru_722840
| Aerobics Revolution || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_TOP || stru_722828
| AFL Live 2003 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_R0 || stru_722810
| AFL Live 2004 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_R1 || stru_7227F8
| AFL Live Premiership Edition || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_R2 || stru_7227E0
| AFL Premiership 2005: The Official Game of the AFL Premiership || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_R3 || stru_7227C8
| AFL Premiership 2006 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_C0 || stru_7227B0
| AFL Premiership 2007 || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_C1 || stru_722798
| After... (Normal + LE Version) || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_C2 || stru_722780
| Agassi Tennis Generation || || ||  ||  ||  
|-
|-
| 1 || 4 || VIF1_C3 || stru_722768
| Age of Empires II: The Age of Kings || || ||  ||  ||  
|-
|-
| 2 || 0x10 || VIF0_FIFO || stru_721850
| Agent Collection (Set of GoldenEye: Rogue Agent + James Bond 007: Everything or Nothing) || || ||  ||  ||  
|-
|-
| 1 || 0x10 || VIF1_FIFO || stru_722678
| Agent Hugo || || ||  ||  ||  
|-
|-
| 2 || 0x10 || VIF1_FIFO || stru_722AB0
| Agent Hugo: Hula Holiday || || ||  ||  ||  
|-
|-
| 2 || 0x10 || GIF_FIFO || stru_722B40
| Agent Hugo: Lemoon Twist || || ||  ||  ||  
|-
|-
| 1 || 0x10 || IPU_Out_FIFO || stru_7238A8
| Agent Hugo: Roborumble || || ||  ||  ||  
|-
|-
| 2 || 0x10 || IPU_In_FIFO || stru_723890
| Aggressive Inline || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_CHCR || stru_721610
| AI Igo 2003 || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_CHCR || stru_721880
| AI Mahjong 2003 || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_MADR || stru_721508
| AI Shogi 2003 || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_MADR || stru_721520
| Aikagi + "Best Version" Re-Release || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_QWC || stru_721808
| Air + "Best Version" Re-Release || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_QWC || stru_721538
| Air Raid 3 || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_TADR || stru_7217F0
| Air Ranger 2 Plus: Rescue Helicopter || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_TADR || stru_721550
| Air Ranger 2: Rescue Helicopter + Reprint || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_ASR0 || stru_7217D8
| Air Ranger: Rescue Helicopter + Reprint (JP) || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_ASR0 || stru_721568
| AirBlade || || ||  ||  ||  
|-
|-
| 1 || 4 || D0_ASR1 || stru_7217C0
| Airborne Troops: Countdown to D-Day Just Airborne Troops in PAL Regions || || ||  ||  ||  
|-
|-
| 2 || 4 || D0_ASR1 || stru_721580
| AirForce Delta Strike Also known as AirForce Delta: Blue Wing Knights (JP) and Delta Strike (PAL Regions) || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_CHCR || stru_722690
| Aiyori Aoshi + LE + "SuperLite 2000" Re-release || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_CHCR || stru_722A68
| Akagi: Yami ni Furitatta Tensai || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_MADR || stru_722A50
| Akai Ito + "SuperLite 2000 Adventure" Re-release || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_MADR || stru_722750
| Akane Iro ni Somaru Saka: Parallel + LE || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_QWC || stru_722A38
| Akira Psycho Ball || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_QWC || stru_722738
| Akudaikan + "Global The Best" Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_TADR || stru_722A20
| Akudaikan 2: Mousouden + "Global The Best" Re-release || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_TADR || stru_722720
| Akudaikan 3 + "Global The Best" Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_ASR0 || stru_722A08
| Akumajou Dracula: Yami no Juin + "Konami the Best Re-release" (Known as Castlevania: Curse of Darkness in PAL Regions and the USA) || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_ASR0 || stru_722708
| Alan Hansen's Sports Challenge || || ||  ||  ||  
|-
|-
| 1 || 4 || D1_ASR1 || stru_7229F0
| Alarm for Cobra 11: Hot Pursuit || || ||  ||  ||  
|-
|-
| 2 || 4 || D1_ASR1 || stru_7226F0
| Alex Ferguson's Player Manager 2001 aka " DSF Football Manager 2002 (Ger)" "Guy Roux Manager 2002 (FR)" || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_CHCR || stru_722B28
| Alfa Romeo Racing Italiano || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_CHCR || stru_722B58
| Alias || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_MADR || stru_7229D8
| Alien Hominid || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_MADR || stru_722AE0
| Aliens in the Attic || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_QWC || stru_7229C0
| Aliens Versus Predator: Extinction || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_QWC || stru_722AC8
| All Star Fighters in Japan known as " Simple 2000 Series Vol. 91: The All Star Kakutou" || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_TADR || stru_7229A8
| All Star Pro-Wrestling || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_TADR || stru_722AF8
| All Star Pro-Wrestling II || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_ASR0 || stru_722990
| All Star Pro-Wrestling III || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_ASR0 || stru_7226D8
| All-Star Baseball 2002 || || ||  ||  ||  
|-
|-
| 1 || 4 || D2_ASR1 || stru_722978
| All-Star Baseball 2003 || || ||  ||  ||  
|-
|-
| 2 || 4 || D2_ASR1 || stru_7226C0
| All-Star Baseball 2004 || || ||  ||  ||  
|-
|-
| 1 || 4 || D3_CHCR || stru_723740
| All-Star Baseball 2005 || || ||  ||  ||  
|-
|-
| 2 || 4 || D3_CHCR || stru_723800
| Alone in the Dark || || ||  ||  ||  
|-
|-
| 1 || 4 || D3_MADR || stru_7237D0
| Alone in the Dark: The New Nightmare || || ||  ||  ||  
|-
|-
| 2 || 4 || D3_MADR || stru_723878
| Alpine Racer 3 || || ||  ||  ||  
|-
|-
| 1 || 4 || D3_QWC || stru_7237B8
| Alpine Ski Racing 2007 || || ||  ||  ||  
|-
|-
| 2 || 4 || D3_QWC || stru_723860
| Alpine Skiing 2005 || || ||  ||  ||  
|-
|-
| 1 || 4 || D4_CHCR || stru_7237A0
| Alter Echo || || ||  ||  ||  
|-
|-
| 2 || 4 || D4_CHCR || stru_7237E8
| Altered Beast Original Name is "Jyuouki: Project Altered Beast" in Japan || || ||  ||  ||  
|-
|-
| 1 || 4 || D4_MADR || stru_723788
| Alvin and the Chipmunks || || ||  ||  ||  
|-
|-
| 2 || 4 || D4_MADR || stru_723848
| Amagami || || ||  ||  ||  
|-
|-
| 1 || 4 || D4_QWC || stru_723770
| Amagoushi no Yakata + "The Best Price" Re-Release || || ||  ||  ||  
|-
|-
| 2 || 4 || D4_QWC || stru_723830
| America Oudan Ultra-Quiz + "DigiCube Best Selection" Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || D4_TADR || stru_723758
| America's 10 Most Wanted (released in the US as Fugitive Hunter: War on Terror) || || ||  ||  ||  
|-
|-
| 2 || 4 || D4_TADR || stru_723818
| America's Army: Rise of a Soldier || || ||  ||  ||  
|-
|-
| 1 || 4 || D5_CHCR || stru_722498
| American Arcade in PAL released as "Play It Pinball" || || ||  ||  ||  
|-
|-
| 2 || 4 || D5_CHCR || stru_7224C8
| American Chopper || || ||  ||  ||  
|-
|-
| 1 || 4 || D5_MADR || stru_722408
| American Chopper 2: Full Throttle || || ||  ||  ||  
|-
|-
| 2 || 4 || D5_MADR || stru_722390
| American Idol Original Version was "Pop Idol" released in UK There are also other PAL Versions for (Ger) (Au) || || ||  ||  ||  
|-
|-
| 1 || 4 || D5_QWC || stru_722468
| American Pool II || || ||  ||  ||  
|-
|-
| 2 || 4 || D5_QWC || stru_7223F0
| AMF Xtreme Bowling Known as AMF Xtreme Bowling 2006 in PAL Regions || || ||  ||  ||  
|-
|-
| 1 || 4 || D6_CHCR || stru_722480
| Amplitude || || ||  ||  ||  
|-
|-
| 2 || 4 || D6_CHCR || stru_7224B0
| An American Tail || || ||  ||  ||  
|-
|-
| 1 || 4 || D6_MADR || stru_722450
| AND 1 Streetball There was also a Special Edition with the Games Soundtracked released in the USA || || ||  ||  ||  
|-
|-
| 2 || 4 || D6_MADR || stru_7223D8
| Angel Profile + "Best Hit Selection" Re-Release || || ||  ||  ||  
|-
|-
| 1 || 4 || D6_QWC || stru_722420
| Angel Wish || || ||  ||  ||  
|-
|-
| 2 || 4 || D6_QWC || stru_7223A8
| Angel's Feather + Limited Edition || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000C430 || stru_722438
| Angel's Feather: Kuro no Zanei + Limited Edition || || ||  ||  ||  
|-
|-
| 2 || 4 || unk_1000C430 || stru_7223C0
| Angelic Concert + "Special Version" || || ||  ||  ||  
|-
|-
| 1 || 4 || D7_CHCR || stru_7235C0
| Angelique Etoile /Premium Box + "Koei the Best" + Koei Teiban Series Re-Releases || || ||  ||  ||  
|-
|-
| 2 || 4 || D7_CHCR || stru_723530
| Angelique Trois / Premium Box + "Koei Teiban Series" Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || D7_MADR || stru_7235A8
| Angelique Trois: Aizouhen / Limited Edition + "Koei the Best" + "Koei the Best Series" Re-releases || || ||  ||  ||  
|-
|-
| 2 || 4 || D7_MADR || stru_723500
| Animal Soccer World || || ||  ||  ||  
|-
|-
| 1 || 4 || D7_QWC || stru_723590
| Animaniacs: The Great Edgar Hunt || || ||  ||  ||  
|-
|-
| 2 || 4 || D7_QWC || stru_723518
| Anime Eikaiwa: 15 Shounen Hyouryuuhen || || ||  ||  ||  
|-
|-
| 1 || 4 || D8_CHCR || stru_7222D0
| Anime Eikaiwa: Tondemo Nezumi Daikatsuyaku || || ||  ||  ||  
|-
|-
| 2 || 4 || D8_CHCR || stru_7222E8
| Anime Eikaiwa: Totoi || || ||  ||  ||  
|-
|-
| 1 || 4 || D8_MADR || stru_7222B8
| Ant Bully, The || || ||  ||  ||  
|-
|-
| 2 || 4 || D8_MADR || stru_722168
| Antz Extreme Racing || || ||  ||  ||  
|-
|-
| 1 || 4 || D8_QWC || stru_7222A0
| Anubis II || || ||  ||  ||  
|-
|-
| 2 || 4 || D8_QWC || stru_722180
| Anubis: Zone of the Enders in PAL and US Regions just known as Zone of the Enders 2 || || ||  ||  ||  
|-
|-
| 1 || 4 || D8_SADR || stru_722288
| Anubis: Zone of the Enders Special Edition in PAL Known as "Zone of the Enders: The 2nd Runner Special Edition" + "Konami Dendou Selection" Re-Release || || ||  ||  ||  
|-
|-
| 2 || 4 || D8_SADR || stru_722198
| Anya Nisasayaku / "Special Edition" || || ||  ||  ||  
|-
|-
| 1 || 4 || D9_CHCR || stru_722270
| Aoi no Mamade... / "Limited Edition" || || ||  ||  ||  
|-
|-
| 2 || 4 || D9_CHCR || stru_722318
| Aoi no Tristia /Limited Edition + "The Best Price" Re-release || || ||  ||  ||  
|-
|-
| 1 || 4 || D9_MADR || stru_722258
| Aoi Sora no Neosphere ~Nanoca Flanka Hatsumei Koubouki 2~ /Limited Edition || || ||  ||  ||  
|-
|-
| 2 || 4 || D9_MADR || stru_7221F8
| Aoishiro / Limited Edition + || || ||  ||  ||  
|-
|-
| 1 || 4 || D9_QWC || stru_722240
| Aoitenryuu: The Arcade || || ||  ||  ||  
|-
|-
| 2 || 4 || D9_QWC || stru_7221B0
| Ape Escape 2 Original Name/Release "Saru! Get You! 2" in Japan ||  ||  || || ||  
|-
|-
| 1 || 4 || D9_TADR || stru_722228
| Ape Escape 3 Original Name/Release "Saru! Get You! 3" in Japan || || ||  ||  ||  
|-
|-
| 2 || 4 || D9_TADR || stru_7221E0
| Ape Escape: Pumped & Primed Original Name/Release "Gacha Mecha Stadium Saru Battle" (Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || D9_SADR || stru_722210
| Apocripha/0 + Limited Edition || || ||  ||  ||  
|-
|-
| 2 || 4 || D9_SADR || stru_7221C8
| Appleseed EX + Limited Edition || || ||  ||  ||  
|-
|-
| 1 || 4 || D_CTRL || stru_721C28
| Aqua Aqua in PAL Regions known as "Aqua Aqua: Wetrix 2" || || ||  ||  ||  
|-
|-
| 2 || 4 || D_CTRL || stru_721C70
| Aqua Kids || || ||  ||  ||  
|-
|-
| 1 || 4 || D_STAT || stru_724130
| Aqua Teen Hunger Force Zombie Ninja Pro-Am || || ||  ||  ||  
|-
|-
| 2 || 4 || D_STAT || stru_7241A8
| Ar tonelico II: Melody of MetafalicaOriginal Release/Name "Ar tonelico II: Sekai ni Hibiku Shoujo Tachi no Metafalica" + Rereleases in Japan || || ||  ||  ||  
|-
|-
| 1 || 4 || D_PCR || stru_724100
| Ar tonelico: Melody of Elemia Original Release/Name "Ar tonelico: Sekai no Owari de Utai Tsudzukeru Shoujo" + "Best" Re-release (Japan) || || ||  ||  ||  
|-
|-
| 2 || 4 || D_PCR || stru_7240E8
| Arabians Lost: The Engagement on Desert || || ||  ||  ||  
|-
|-
| 1 || 4 || D_SQWC || stru_722138
| Arc the Lad: End of Darkness Original Release/Name: "Arc the Lad: Generation (Japan) " || || ||  ||  ||  
|-
|-
| 2 || 4 || D_SQWC || stru_722150
| Arc the Lad: Twilight of the Spirits Original Release/Name: "Arc the Lad: Seirei no Koukon (Japan) " || || ||  ||  ||  
|-
|-
| 1 || 4 || D_RBSR || stru_721BF8
| Arcade Classics Volume One || || ||  ||  ||  
|-
|-
| 2 || 4 || D_RBSR || stru_721B68
| Arcade USA || || ||  ||  ||  
|-
|-
| 1 || 4 || D_RBOR || stru_721B80
| Arcana Heart + "AQ The Best" Re-Release in Japan || || ||  ||  ||  
|-
|-
| 2 || 4 || D_RBOR || stru_721B98
| Arcobaleno! + Limited Edition Release || || ||  ||  ||  
|-
|-
| 1 || 4 || D_STADR || stru_721C40
| Arctic Thunder || || ||  ||  ||  
|-
|-
| 2 || 4 || D_STADR || stru_721BB0
| Are You Smarter Than a 5th Grader: Make the Grade || || ||  ||  ||  
|-
|-
| 1 || 4 || INTC_STAT || stru_724148
| Area 51 || || ||  ||  ||  
|-
|-
| 2 || 4 || INTC_STAT || stru_7241C0
| Arena Football || || ||  ||  ||  
|-
|-
| 1 || 4 || INTC_MASK || stru_724118
| Arena Football: Road to Glory || || ||  ||  ||  
|-
|-
| 2 || 4 || INTC_MASK || stru_724160
| Argus no Senshi Known in the USA and PAL Regions as "Rygar: The Legendary Adventure " || || ||  ||  ||  
|-
|-
| 2 || 4 || KPUTCHAR || stru_723B30
| Aria: The Natural ~Tooi Yume no Mirage~ + LE and "Alchemist the Best" Re-Release || || ||  ||  ||  
|-
|-
| 1 || 4 || MSCOM || stru_723578
| Aria: The Origination ~Aoi Hoshi no El Cielo~ + LE and "Alchemist the Best" Re-Release || || ||  ||  ||  
|-
|-
| 2 || 4 || MSCOM || stru_723548
| Armored Core 2 + "Playstation 2 The Best" Rerelease (Japan) ||  ||  || || ||  
|-
|-
| 1 || 4 || SMCOM || stru_723560
| Armored Core 2: Another Age + "Playstation 2 The Best" Rerelease (Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || MSFLAG || stru_723620
| Armored Core 3 + "Playstation 2 The Best" Rerelease (Japan) || || ||  ||  ||  
|-
|-
| 2 || 4 || MSFLAG || stru_723680
| Armored Core 3: Silent Line + "Playstation 2 The Best" Rerelease (Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || SMFLAG || stru_723608
| Armored Core: Formula Front || || ||  ||  ||  
|-
|-
| 2 || 4 || SMFLAG || stru_723668
| Armored Core: Last Raven + "Playstation 2 The Best" Rerelease (Japan) || || ||  ||  ||  
|-
|-
| 1 || 4 || SIF_CR || stru_7235F0
| Armored Core: Nexus + "Playstation 2 The Best" Rerelease (Japan) || || ||  ||  ||  
|-
|-
| 2 || 4 || SIF_CR || stru_723650
| Armored Core: Nine Breaker || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F260 || stru_7235D8
| Army Men: Air Attack 2 in PAL Regions known as "Army Men: Air Attack - Blade's Revenge" || || ||  ||  ||  
|-
|-
| 2 || 4 || unk_1000F260 || stru_723638
| Army Men: Green Rogue || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F280 || stru_723428
| Army Men: Major Malfunction || || ||  ||  ||  
|-
|-
| 2 || 4 || unk_1000F280 || stru_723440
| Army Men: RTS known in Japan as " Totsugeki! Army Men: Shijou Saishou no Sakusen" || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F290 || stru_723458
| Army Men: Sarge's Heroes 2 || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F2A0 || stru_723470
| Army Men: Sarge's War || || ||  ||  ||  
|-
|-
| 2 || 4 || unk_1000F2A0 || stru_723488
| Army Men: Soldiers of Misfortune || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F2B0 || stru_7234A0
| Art of Fighting Anthology Original Release /Name is "Ryuuko no Ken: Ten-Chi-Jin (NeoGeo Online Collection Vol. 4) " in Japan ||  || ||| ||  
|-
|-
| 2 || 4 || unk_1000F2B0 || stru_7234B8
| Arthur and the Invisibles || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F2C0 || stru_7234D0
| Ashita no Joe 2: The Anime Super Remix || || ||  ||  ||  
|-
|-
| 2 || 4 || unk_1000F2C0 || stru_7234E8
| Ashita no Joe Touchi: Typing Namida Hashi || || ||  ||  ||  
|-
|-
| 1 || 4 || D_ENABLER || stru_721C10
| Ashita no Joe: Masshiro ni Moe Tsukiro! + "Konami the Best" Rerelease || || ||  ||  ||  
|-
|-
| 2 || 4 || D_ENABLEW || stru_721C58
| Asobi ni Iku Yo! + Limited Edition || || ||  ||  ||  
|-
|-
| 1 || 8 || unk_1000F800 || stru_7250C0
| Assault Suits Valken Original Release/Name " Juusou Kihei Valken" (Japan) || || ||  ||  ||  
|-
|-
| 2 || 8 || unk_1000F800 || stru_7250D8
| Asterix & Obelix XXL in the USA known as "Asterix & Obelix: Kick Buttix" || || ||  ||  ||  
|-
|-
| 1 || 8 || unk_1000F810 || stru_725150
| Asterix & Obelix XXL2: Mission: Las Vegum || || ||  ||  ||  
|-
|-
| 1 || 0x10 || unk_1000F820 || stru_7250F0
| Asterix at the Olympic Games || || ||  ||  ||  
|-
|-
| 1 || 0x10 || unk_1000F830 || stru_725108
| Astro Boy: Tetsuwan Atom in PAL Regions and the USA simply known as "Astro Boy" || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F860 || stru_725120
| Astro Boy: The Video Game || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F880 || stru_725138
| Astro Kyuudan: Kessen!! Victory Kyuudanhen || || ||  ||  ||  
|-
|-
| 1 || 4 || unk_1000F8B0 || stru_725168
| At the Races Presents Gallop Racer Originalrelease: Gallop Racer 6: Revolution (Japan) also released in US as "Gallop Racer 2003: A New Breed" || || ||  ||  ||  
|-
|-
| 2 || 8 || PMODE || stru_721E20
| Atari Anthology || || ||  ||  ||  
|-
|-
| 2 || 8 || SMODE1 || stru_722060
| Atelier Iris 2: The Azoth of Destiny Original Release/Name: "Iris no Atelier: Eternal Mana 2" (Japan) ||  ||  || || ||  
|-
|-
| 2 || 8 || SMODE2 || stru_721F88
| Atelier Iris 3: Grand Phantasm Original Release/Name: Iris no Atelier: Grand Fantasm (Japan) || || ||  ||  ||  
|-
|-
| 2 || 8 || SRFSH || stru_721E38
| Atelier Iris: Eternal Mana Original Release/Name: "Iris no Atelier: Eternal Mana" (Japan) || || ||  ||  ||  
|-
|-
| 2 || 8 || SYNCH1 || stru_721F70
| Atelier Marie + Elie + Limited Edition || || ||  ||  ||  
|-
|-
| 2 || 8 || SYNCH2 || stru_721F58
| Athens 2004 + "Platinum" Re-release in PAL/EU || || ||  ||  ||  
|-
|-
| 2 || 8 || SYNCV || stru_721F40
| Atlantis III: The New World || || ||  ||  ||  
|-
|-
| 2 || 8 || DISPFB1 || stru_7220F0
| ATV Offroad Fury + Greatest Hits Re-Release in the USA || || ||  ||  ||  
|-
|-
| 2 || 8 || DISPLAY1 || stru_722018
| ATV Offroad Fury 2 + Greatest Hits Re-Release in the USA || || ||  ||  ||  
|-
|-
| 2 || 8 || DISPFB2 || stru_7220D8
| ATV Offroad Fury 3 + Greatest Hits Re-Release in the USA || || ||  ||  ||  
|-
|-
| 2 || 8 || DISPLAY2 || stru_722078
| ATV Offroad Fury 4 + Greatest Hits Re-Release in the USA || || ||  ||  ||  
|-
|-
| 2 || 8 || EXTBUF || stru_721E50
| ATV Quad Power Racing 2 || || ||  ||  ||  
|-
|-
| 2 || 8 || EXTDATA || stru_721E68
| Austin Mini Racing || || ||  ||  ||  
|-
|-
| 2 || 8 || EXTWRITE || stru_721E80
| Australian Idol Sing || || ||  ||  ||  
|-
|-
| 2 || 8 || BGCOLOR || stru_721E98
| Auto Modellista Enhanced Version released in USA and later Japan as well "Auto Modellista: U.S.-Tuned" || || ||  ||  ||  
|-
|-
| 1 || 8 || GS_CSR || stru_722090
| Auto Modellista: U.S.-Tuned || || ||  ||  ||  
|-
|-
| 2 || 8 || GS_CSR || stru_722120
| Autobahn Raser: Police Madness Released in UK first as "London Racer Police Madness" in France as "Paris-Marseille Racing : Police Madness" || || ||  ||  ||  
|-
|-
| 2 || 8 || GS_IMR || stru_722108
| Autobahn Raser IV || || ||  ||  ||  
|-
|-
| 2 || 8 || BUSDIR || stru_721FA0
| Autobahn Raser: Das Spiel zum Film || || ||  ||  ||  
|-
|-
| 1 || 8 || SIGLBLID || stru_722030
| Autobahn Raser: Destruction Madness Released in UK first as "London Racer Destruction Madness" in France as "Paris-Marseille Racing : Destruction Madness" || || ||  ||  ||  
|-
|-
| 2 || 8 || SIGLBLID || stru_722048
| Autobahn Raser: World Challenge Released in UK first as "London Racer: World Challenge" in France as "Paris-Marseille Racing : Edition Tour du Monde" || || ||  ||  ||
|-
| Avatar - The Last Airbender: Into the Inferno ||  ||  ||  ||  ||
|-
| Avatar: The Last Airbender known as "Avatar: The Legend of Aang" in PAL Regions + Greatest Hits Re-Release (USA) ||  ||  ||  ||  ||
|-
| Avatar: The Last Airbender: The Burning Earth known as Avatar: The Legend of Aang: The Burning Earth in PAL Regions ||  ||  ||  ||  ||
|-
| Ayaka Shibito + Limited Edition and "Best Selection" Re-Release ||  ||  ||  ||  ||
|-
| Azumi the Game got re-released as part of the D3 Simple Series Budget Games under the Name "Simple 2000 Series Ultimate Vol. 32: Azumi" ||  ||  ||  ||  ||
|-
| Azur & Asmar ||  ||  ||  ||  ||  
|-
|-
|}
|}
1000F800 to 1000F8B0 seems to be some fake regs for testing purposes. Probably not existing on real PS2. Addresses not described below are handled as a unk rw. Which mean they return 0 on read, and do nothing on write.
==== B ====
* 1000F800 do nothing (blr). Have own handler, which suggest it was used for something earlier. [r/w]
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
* 1000F810 get current ppc time base using mftb opcode, if tb == 0 then loop until its not. Could be useful, tb is used also in scheduler. [r only] 
|- bgcolor="#cccccc"
* 1000F820 return "DrJock TV Quiz P" [r only]
! Title !! ps2<br />emu !! ps2<br />gxemu !! ps2<br />softemu !! Other !! Notes
* 1000F830 return "hD bags few lynx" [r only]
|-
That make string "DrJock TV Quiz PhD bags few lynx" - This is perfect summary of Sony work. Since correct pangram should use "MrJock". So even here they made mistake.
| B-Boy ||  ||  ||  ||  ||
* 1000F860 seems to return halfword of current pad state (0xFFFF if there is no button input currently). [r only]
|-
* 1000F880 return hardcoded value of 0x4457, which match emu revision i'm working on. Can be just coincidence. [r only]
| Babe ||  ||  ||  ||  ||
* 1000F8B0 return unk value. Seems to be related to fe spe. [r only]
|-
 
| Backyard Baseball ||  ||  ||  ||  ||
==Random notes about SPE in ps2_netemu==
|-
 
| Backyard Baseball '09 ||  ||  ||  ||  ||
===IOP SPE===
|-
This
| Backyard Baseball '10 ||  ||  ||  ||  ||
SPE run not only dma related stuff, but also fully fledged r3000 instruction interpreter (yes interpreter, not recompiler).
|-
 
| Backyard Basketball ||  ||  ||  ||  ||
<pre>
|-
  opcode      | address
| Backyard Football '08 ||  ||  ||  ||  ||
--------------+-------- 
|-
r3000_ADDI      0x317C0
| Backyard Football 2006 ||  ||  ||  ||  ||
r3000_ADDIU    0x31800
|-
r3000_SLTI      0x31840
| Backyard Football 2009 ||  ||  ||  ||  ||
r3000_SLTIU    0x31880
|-
r3000_ANDI      0x318C0
| Backyard Football 2010 ||  ||  ||  ||  ||
r3000_ORI      0x31900
|-
r3000_XORI      0x31940
| Backyard Sports Baseball 2007 ||  ||  ||  ||  ||
r3000_LUI      0x31980
|-
r3000_ADD      0x319C0
| Backyard Sports Basketball 2007 ||  ||  ||  ||  ||
r3000_ADDU      0x31A00
|-
r3000_SUB      0x31A40
| Backyard Wrestling 2: There Goes the Neighborhood ||  ||  ||  ||  ||
r3000_SUBU      0x31A80
|-
r3000_SLT      0x31AC0
| Backyard Wrestling: Don't Try This at Home ||  ||  ||  ||  ||
r3000_SLTU      0x31B00
|-
r3000_AND      0x31B40
| Bad Boys II in the USA released as Bad Boys: Miami Takedown ||  ||  ||  ||  ||
r3000_OR        0x31B80
|-
r3000_XOR      0x31BC0
| Bakushou! Jinsei Kaimichi ||  ||  ||  ||  ||
r3000_NOR      0x31C00
|-
r3000_SLL      0x31C40
| Baldur's Gate: Dark Alliance ||  ||  ||  ||  ||
r3000_unk1      0x31C80 Primary opcode field (Bit 26..31) = 0x3E (debug stuff, not existing on real r3000)
|-
r3000_unk2      0x31CC0 Primary opcode field (Bit 26..31) = 0x3F (debug stuff, not existing on real r3000)
| Baldur's Gate: Dark Alliance II ||  ||  ||  ||  ||
r3000_SRL      0x31D00
|-
r3000_SRA      0x31D40
| Bakufu Slash!!Kizna Arashi ||  ||  ||  ||  ||
r3000_SLLV      0x31D80
|-
r3000_SRLV      0x31DC0
| Barbarian ||  ||  ||  ||  ||
r3000_SRAV      0x31E00
|-
r3000_MULT      0x31E40
| Barbie Horse Adventures: Wild Horse Rescue ||  ||  ||  ||  ||
r3000_MULTU    0x31F00
|-
r3000_DIV      0x31F80
| The Bard's Tale ||  ||  ||  ||  ||
r3000_MFHI      0x32080
|-
r3000_MFLO      0x320C0
| Barnyard ||  ||  ||  ||  ||
r3000_MTHI      0x32100
|-
r3000_MTLO      0x32140
| Bass Strike ||  ||  ||  ||  ||
r3000_J        0x32180
|-
r3000_JAL      0x32200
| Batman Begins ||  ||  ||  ||  ||
r3000_JR        0x32280
|-
r3000_JALR      0x322C0
| Batman: Rise of Sin Tzu ||  ||  ||  ||  ||
r3000_BEQ      0x32300
|-
r3000_BNE      0x32340
| Batman Vengeance ||  ||  ||  ||  ||
r3000_BLEZ      0x32380
|-
r3000_BGTZ      0x323C0
| Battle Engine Aquila ||  ||  ||  ||  ||
r3000_BcondZ    0x32400
|-
r3000_SYSCALL  0x32480
| Battlefield 2: Modern Combat ||  ||  ||  ||  ||
r3000_BREAK    0x324C0
|-
r3000_COP_bad  0x32500
| Battle Stadium D.O.N ||  ||  ||  ||  ||
r3000_COP0      0x32540
|-
r3000_bad_op    0x32740
| Battlestar Galactica ||  ||  ||  ||  ||
r3000_LB        0x32840
|-
r3000_LH        0x32940
| BCV: Battle Construction Vehicles ||  ||  ||  ||  ||
r3000_LW        0x32A40
|-
r3000_LBU      0x32B80
| Beat Down: Fists of Vengeance ||  ||  ||  ||  ||
r3000_LHU      0x32C80
|-
r3000_LWL      0x32D80
| Beatmania ||  ||  ||  ||  ||
r3000_LWR      0x32E80
|-
r3000_SB        0x32F80
| Beatmania IIDX 3rd Style ||  ||  ||  ||  ||
r3000_SH        0x33080
|-
r3000_SW        0x33180
| Beatmania IIDX 4th Style: New Songs Collection ||  ||  ||  ||  ||
r3000_SWL      0x33300
|-
r3000_SWR      0x33400
| Beatmania IIDX 5th Style: New Songs Collection ||  ||  ||  ||  ||
 
|-
Addresses above ARE NOT the ones in emulator memory, this is
| Beatmania IIDX 6th Style: New Songs Collection ||  ||  ||  ||  ||
|-
| Beatmania IIDX 7th Style ||  ||  ||  ||  ||
|-
| Beatmania IIDX 8th Style ||  ||  ||  ||  ||
|-
| Beatmania IIDX 9th Style ||  ||  ||  ||  ||
|-
| Beatmania IIDX 10th Style ||  ||  ||  ||  ||
|-
| Beatmania IIDX 11: IIDX RED ||  ||  ||  ||  ||
|-
| Beatmania IIDX 12: Happy Sky ||  ||  ||  ||  ||
|-
| Beatmania IIDX 13: Distorted ||  ||  ||  ||  ||
|-
| Beatmania IIDX 14: Gold ||  ||  ||  ||  ||
|-
| Beatmania IIDX 15: DJ Troopers ||  ||  ||  ||  ||
|-
| Beatmania IIDX 16: Empress + Premium Best ||  ||  ||  ||  ||
|-
| Berserk: Millennium Falcon Hen Seima Senki no Sh? ||  ||  ||  ||  ||
|-
| Beyond Good and Evil ||  ||  ||  ||  ||
|-
| The Bible Game ||  ||  ||  ||  ||
|-
| Big Mutha Truckers ||  ||  ||  ||  ||
|-
| Big Mutha Truckers 2 ||  ||  ||  ||  ||
|-
| Bionicle Heroes ||  ||  ||  ||  ||
|-
| Bionicle: The Game ||  ||  ||  ||  ||
|-
| Black ||  ||  ||  ||  ||
|-
| Black & Bruised ||  ||  ||  ||  ||
|-
| Black Cat:Kikai Shikake no Tenshi ||  ||  ||  ||  ||
|-
| Black Market Bowling ||  ||  ||  ||  ||
|-
| Blade II ||  ||  ||  ||  ||
|-
| Bleach: Blade Battlers ||  ||  ||  ||  ||
|-
| Bleach: Blade Battlers 2 ||  ||  ||  ||  ||
|-
| Bleach: Erabareshi Tamashii ||  ||  ||  ||  ||
|-
| Bleach: Hanatareshi Yabou ||  ||  ||  ||  ||
|-
| Blitz: The League ||  ||  ||  ||  ||
|-
| Blood Omen 2 ||  ||  ||  ||  ||
|-
| Blood+: One Night Kiss ||  ||  ||  ||  ||
|-
| Blood: The Last Vampire - First Volume ||  ||  ||  ||  ||
|-
| Blood: The Last Vampire - Last Volume ||  ||  ||  ||  ||
|-
| Blood Will Tell ||  ||  ||  ||  ||
|-
| BloodRayne ||  ||  ||  ||  ||
|-
| BloodRayne 2 ||  ||  ||  ||  ||
|-
| Bloody Roar 3 ||  ||  ||  ||  ||
|-
| Bloody Roar 4 ||  ||  ||  ||  ||
|-
| BlowOut ||  ||  ||  ||  ||
|-
| BMX XXX ||  ||  ||  ||  ||
|-
| Bobobo-bo Bo-bobo Atsumare! Taikan Bo-bobo ||  ||  ||  ||  ||
|-
| Bobobo-bo Bo-bobo Hajike Matsuri ||  ||  ||  ||  ||
|-
| Bode Miller Alpine Skiing ||  ||  ||  ||  ||
|-
| Boku no Natsu Yasumi 2 ||  ||  ||  ||  ||
|-
| Bombastic ||  ||  ||  ||  ||
|-
| Bomberman Hardball ||  ||  ||  ||  ||
|-
| Bomberman Jetters ||  ||  ||  ||  ||
|-
| Bomberman Land 2 ||  ||  ||  ||  ||
|-
| Bomberman Kart ||  ||  ||  ||  ||
|-
| Bouken Jidai Katsugeki: Goemon ||  ||  ||  ||  ||
|-
| The Bouncer ||  ||  ||  ||  ||
|-
| Boxing Champions ||  ||  ||  ||  ||
|-
| Bratz: Forever Diamondz ||  ||  ||  ||  ||
|-
| Bratz: Rock Angelz ||  ||  ||  ||  ||
|-
| Brave: The Search for Spirit Dancer ||  ||  ||  ||  ||
|-
| Bravo Music: Chou-Meikyokuban ||  ||  ||  ||  ||
|-
| Bravo Music: Christmas Edition ||  ||  ||  ||  ||
|-
| Breath of Fire: Dragon Quarter ||  ||  ||  ||  ||
|-
| Brian Lara International Cricket 2005 ||  ||  ||  ||  ||
|-
| Brian Lara International Cricket 2007 ||  ||  ||  ||  ||
|-
| Britney's Dance Beat ||  ||  ||  ||  ||
|-
| Broken Sword: The Sleeping Dragon ||  ||  ||  ||  ||
|-
| Brothers in Arms: Earned in Blood ||  ||  ||  ||  ||
|-
| Brothers In Arms: Road to Hill 30 ||  ||  ||  ||  ||
|-
| Buffy the Vampire Slayer: Chaos Bleeds ||  ||  ||  ||  ||
|-
| Bujingai: The Forsaken City ||  ||  ||  ||  ||
|-
| Bully (Canis Canem Edit in Europe/Australia) ||  ||  ||  ||  ||
|-
| Burnout ||  ||  ||  ||  ||
|-
| Burnout 2: Point of Impact ||  ||  ||  ||  ||
|-
| Burnout 3: Takedown ||  ||  ||  ||  ||
|-
| Burnout Revenge ||  ||  ||  ||  ||
|-
| Burnout Dominator ||  ||  ||  ||  ||
|-
| Busou Renkin: Yokosu Papillon Park e ||  ||  ||  ||  ||
|-
| Bust-A-Bloc ||  ||  ||  ||  ||
|-
| Butt-Ugly Martians: Zoom or Doom ||  ||  ||  ||  ||
|-
| Buzz! Junior: Jungle Party ||  ||  ||  ||  ||
|-
| Buzz! Junior: Monster Rumble ||  ||  ||  ||  ||
|-
| Buzz! The Big Quiz ||  ||  ||  ||  ||
|-
| Buzz! The Hollywood Quiz ||  ||  ||  ||  ||
|-
| Buzz! The Mega Quiz ||  ||  ||  ||  ||
|-
| Buzz! The Music Quiz ||  ||  ||  ||  ||
|-
| Buzz! The Sports Quiz ||  ||  ||  ||  ||
|-
|}
==== C ====
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"
|- bgcolor="#cccccc"
! Title !! ps2<br />emu !! ps2<br />gxemu !! ps2<br />softemu !! Other !! Notes
|-
| Cabela's African Safari ||  ||  ||  ||  ||
|-
| Cabela's Alaskan Adventure ||  ||  ||  ||  ||
|-
| Cabela's Big Game Hunter (2002) ||  ||  ||  ||  ||
|-
| Cabela's Big Game Hunter (2007) ||  ||  ||  ||  ||
|-
| Cabela's Big Game Hunter 2005 Adventures ||  ||  ||  ||  ||
|-
| Cabela's Dangerous Hunts ||  ||  ||  ||  ||
|-
| Cabela's Dangerous Hunts 2 ||  ||  ||  ||  ||
|-
| Cabela's Dangerous Hunts 2009 ||  ||  ||  ||  ||
|-
| Cabela's Legendary Adventures ||  ||  ||  ||  ||
|-
| Cabela's Monster Bass ||  ||  ||  ||  ||
|-
| Cabela's Outdoor Adventures ||  ||  ||  ||  ||
|-
| Cabela's Trophy Bucks ||  ||  ||  ||  ||
|-
| Call of Duty: Finest Hour ||  ||  ||  ||  ||
|-
| Call of Duty 2: Big Red One ||  ||  ||  ||  ||
|-
| Call of Duty 3 ||  ||  ||  ||  ||
|-
| Call of Duty: World at War: Final Fronts ||  ||  ||  ||  ||
|-
| Capcom Classics Collection ||  ||  ||  ||  ||
|-
| Capcom Classics Collection Vol. 2 ||  ||  ||  ||  ||
|-
| Capcom Fighting Evolution ||  ||  ||  ||  ||
|-
| Captain Tsubasa ||  ||  ||  ||  ||
|-
| Carmen Sandiego: The Secret of the Stolen Drums ||  ||  ||  ||  ||
|-
| Cars ||  ||  ||  ||  ||
|-
| Cars Mater-National ||  ||  ||  ||  ||
|-
| Cars Race-O-Rama ||  ||  ||  ||  ||
|-
| CART Fury ||  ||  ||  ||  ||
|-
| Cartoon Network Racing ||  ||  ||  ||  ||
|-
| Castle Shikigami 2 ||  ||  ||  ||  ||
|-
| Shikigami no Shiro 2JP ||  ||  ||  ||  ||
|-
| Castlevania: Curse of Darkness ||  ||  ||  ||  ||
|-
| Castlevania: Lament of Innocence ||  ||  ||  ||  ||
|-
| Catwoman ||  ||  ||  ||  ||
|-
| Cel Damage Overdrive ||  ||  ||  ||  ||
|-
| Celebrity Deathmatch ||  ||  ||  ||  ||
|-
| Centre Court Hard Hitter ||  ||  ||  ||  ||
|-
| Champions of Norrath: Realms of Everquest ||  ||  ||  ||  ||
|-
| Champions: Return to Arms ||  ||  ||  ||  ||
|-
| Championship Manager 2006 ||  ||  ||  ||  ||
|-
| Championship Manager 2007 ||  ||  ||  ||  ||
|-
| Championship Manager 5 ||  ||  ||  ||  ||
|-
| Charlie and the Chocolate Factory ||  ||  ||  ||  ||
|-
| Charlie's Angels ||  ||  ||  ||  ||
|-
| Chaos Legion


== Patches for SCCS region games ==
Most Chinese region games (SCCS) require the ROM2 modules to be present. However, even if they are required by the game in order to boot, they are not needed at all and are fully playable without ROM2 the vast majority of the time. I have compiled patches for all SCCS games that allow each one to at least boot on PS3 and PCSX2 (older versions, or newer ones without the correct BIOS) by simply skipping over the infinite loops the games get caught in: https://www.mediafire.com/file/skdka574f23b96g/SCCS_patches.zip/file


Mostly untested on PS3, but all have been tested on an older PCSX2 version. PS4 seems to not work with these patches. Even the bootable games without patching needed do not work, so I suspect there is some blacklist preventing them from booting on that emulator. In the end, only two games ended up having text bugs due to the character data not being loaded from ROM2:
====Japanese Games====


{| class="wikitable"
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable sortable" style="border:1px solid #999; border-collapse: collapse;"  
|-
|- bgcolor="#cccccc"
! Serial Number !! Game !! Bootable (without patch) !! ROM2 required
! Title !! ps2_emu !! ps2_gxemu !! ps2_softemu !! ps2_netemu !! Notes
|-
| SCCS-40001 || Ape Escape 2 || No || Yes (missing text)
|-
| SCCS-40002 || Devil May Cry 2 (Disc 1) || No || No
|-
| SCCS-40003 || Devil May Cry 2 (Disc 2) || No || No
|-
| SCCS-40004 || XIGO: Zuihou de Touzi || No || No
|-
|-
| SCCS-40005 || Ico || No || No
|Final Fantasy X  || || ||  ||  ||  
|-
|-
| SCCS-40006 || Zhen Sanguo Wushuang 2 || No || No
|Final Fantasy X International  || || ||  ||  ||  
|-
|-
| SCCS-40007 || Arc the Lad: Seirei no Tasogare || No || No
|Kingdom Hearts  || || ||  ||  ||  
|-
|-
| SCCS-40009 || Dragon Ball Z 2 || Yes || No
|Kingdom Hearts Final Mix  || || ||  ||  ||  
|-
|-
| SCCS-40010 || Super Puzzle Bobble 2 || No || No
|Xenosaga Episode 1  || || ||  ||  ||  
|-
|-
| SCCS-40011 || Armored Core 2: Another Age || No || No
|PlayOnline Viewer  || || ||  ||  ||  
|-
|-
| SCCS-40014 || World Soccer Winning Eleven 7 International || No || No
|Tetra Master  || || ||  ||  ||  
|-
|-
| SCCS-40015 || Viorate no Atelier: Gramnad no Renkinjutsushi 2 || No || Yes (text bugs)
|JongHowLo  || || ||  ||  ||  
|-
|-
| SCCS-40016 || Ape Escape: Pumped & Primed || Yes || No
|Final Fantasy XI  || || ||  ||  ||  
|-
|-
| SCCS-40017 || EyeToy: Play || No || EyeToy game
|Unlimited Saga  || || ||  ||  ||  
|-
|-
| SCCS-40018 || Saru EyeToy Oosawagi: Wakki Waki Game Tenkomori!! || No || EyeToy game
|Dark Chronicle (aka Dark Cloud 2)  || || ||  ||  ||  
|-
|-
| SCCS-40019 || Formula One 04 || No || No (English)
|Bomberman Kart  || || ||  ||  ||  
|-
|-
| SCCS-40022 || World Soccer Winning Eleven 8: Asia Championship || No || No
|Capcom vs. SNK 2  ||  ||  ||  ||  ||  
|-
| SCCS-60002 || Gran Turismo 4 || No || No
|}
* I believe that real PS2 also need those patches. For OPL, but not only. ROM2 with CH fonts is not existing outside of 3 ps2 models. All of them released only in China, and one of them is still not even dumped (devkit). This ROM2 is even missing in Hong Kong region PS2. Btw. When i implemented ROM2 support in pcsx2, i tested patching game first. Unluckily for netemu, and fortunately for pcsx2. First and only game i tried to patch was Ape Escape 2. :) --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 12:39, 23 November 2022 (UTC)
** Yup, lucky for me I tested Dynasty Warriors 3 first, then Ape Escape 2 was the second if I recall. I was worried but pleasantly surprised by the rest of the results. I assume ROM2 has data for simplified Chinese characters while Hong Kong/Taiwan uses traditional characters, and that’s probably why there is no ROM2 in the HK/TW region. I am not sure why they even included ROM2 in the first place if barely any games utilize it, but oh well. --[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 18:01, 28 November 2022 (UTC)
*** "PS4 seems to not work with these patches. Even the bootable games without patching needed do not work, so I suspect there is some blacklist preventing them from booting on that emulator.". Just for the record, ps4 don't blacklist them. It's issue with cdvdkey (known for PS3 users as "game hash". ;) ). Emulator fail to respond correctly to one of CDVD register reads. Issue is already patched with my ugly hacks (TC:LA-a-like code swap). Your patches are still required on ps4 after fixing other issues. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 17:39, 20 June 2023 (CEST)
 
== Removing stuff from ps2 emu page ==
 
I'm thinking about removing some data from PS2 Emulation page. Mostly stuff that is strictly PS2 thing.
 
*PS2 Memory and Hardware Mapped Registers Layout
*Video Modes
*Config related info
 
'''Video Modes''' listed there are not even supported by emulators without GS, and likely to fail even on PS3 with GS. This is really info for PS2 wiki in my opinion. '''PS2 Memory and Hardware Mapped Registers Layout''' also fit more in PS2 wiki. This is more like general PS2 dev knowledge than emulation related stuff. Eventually keep them as a links to ps2tek or ps2 devwiki, or something. Let me know if you think this is/isn't good idea. For example PS1 page don't list stuff like this, same goes for PSP page. In case of Config stuff. This is crucial part of this page, but i feel that harm general readability. Due to complicated nature of PS2 config descriptions are getting bigger, and bigger. Honestly this is still missing a lot of info because many times we are limiting ourself to not make descriptions too extensive. All that to not flood page too much. Maybe it's time to move most of that to new dedicated page? We can leave some basic info, like that small table, plus some '''BOLD''' link to "advanced page". This should allow to wikify and move some non-config stuff from talk page. This are only ideas, i expect not everyone will be happy about all of them. Lets talk. :P --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 08:21, 16 January 2023 (UTC)
* I think these are all good ideas. I occasionally use the PS2 register info for help sometimes, but I could easily use PSI’s page for that (https://psi-rockin.github.io/ps2tek/). I agree that it doesn’t really belong on the page. I agree that emulation page is getting extensive, so maybe it would be good to move the config info to a new page. I am not opposed and are all for it. --[[User:Mrjaredbeta|Mrjaredbeta]] ([[User talk:Mrjaredbeta|talk]]) 15:12, 16 January 2023 (UTC)
 
== Floating point arithmetic inaccuracies ==
 
While the software emulators are doing a great job with their accurate paths, there are still issues with some games, unfortunately.
* Stuntman/Driv3r
Completely broken AI, game is unplayable.
* Gran Turismo series
An infamous licence demonstration bug - cars deviate from the racing line. It may affect the AI in the race too. Since the GT's AI is retarded, the subject is difficult to confirm.
* Tokyo Xtreme Racer Zero
It is unconfirmed, but the cars path from PS2 imported replays are played back wrongly in the PCSX2.
* PRIDE FC: Fighting Championships
It seems that y × 1 ≠ y sometimes. Fixed by patching the game code.
 
== Manipulating r5900 cyclerate ==
 
Cycles are count in function located at 0x17C9D0 (latest netemu). Emitter with addi to r13 register is what we are looking for. Since pcsx2 use different "unit", lets just call cycles here a... unit.
 
  _________________________________________________
|  Opcode type  |  Netemu/Gxemu  |    PCSX2  |
|----------------|------------------|-------------|
| Default opcode |    1 unit      |    9 units  |
| Load/Store    |    2 units      |  14 units  |
| Multiply      |    4 units      |  16 units  |
| Divide        |    37 units      |  112 units  |
| COP 0          |    1 unit      |    7 units  |
  | COP 1          | 1 unit(some 2) |   7 units  |
  | COP 2          |    1 unit      |    7 units  |
  | NOP            |  0 units(!!!)  |   7? units |
---------------------------------------------------
Additionally pcsx2 use different cycles for many other opcodes that ps3 emus just count as one.
  * MMI      =  14 units
  * MMI Mult =  24 units
  * MMI Div  = 176 units
  * FPU Mul  =  32 units
At the second hand gx/net emu do some weird shenigans with cycles based on... Opcode number, this is still small unknown here. Yeah...
  It turns out that emu is not counting nop cycles. Weird shenigans mentioned above check if opcode number is 1, which belongs to ee NOP in internal emu table.
  When opcode is NOP then emulator is not adding even single cycle. This explains a lot of issues with dma and why EE always seemed too fast for DMA and other components.
  This code takes 2 cycles (units) per loop in emu:
loop_here:
  addiu v0, -1
  nop
  nop
  nop
  nop
  nop
  bnez v0, loop_here
 
I still need to fully confirm that nop isn't handled in some special way elsewhere but looks like it's not.
Underclocking/Overclocking could be done by modifying opcodes at 0x17CEB0, 0x17CFF8, 0x17D4C8.
What has been tested do far is shifting by 1 or 2 to the left (underclock by multiplying passed cycles). Sadly without any possitive result to framerate, shift by 2 was even slower.
 
== Emulator status flags ==
 
We can't really modify this flag from outside on retail emu, but we can always patch function that do init.
===Netemu===
Localised at 0x934158 of emu memory.
1        = init done?
2        = unk thr sys
4        = unk thr sys
8        = unk
10      = run watchpoint opcode (debug halt) 0x11DD80
20      = set mecha 0x245828A to 2, and run sc8 (0x200)
40      = some setting for spe0_class0_int_handler
80      = enable cmd 0xF/0x26/0x27 for whole memory range
200      = set when emulated hardware init is done
400      = enable 0x934160 debug flag (watchpoint on ee and on iop)
800      = skip parsing config file
1000    = do cmd 0x1F with 0x3E8(1000) param
4000    = enable cmd 0x11 for whole VU0 mem (per range setting is inaccessible from config!)
20000    = skip SCED discs error (more, todo)
40000    = do cmd 0x14
80000    = memory card related (0x12A6D8) also run sc_7(2) in thr hdd
200000  = do cmd 0x05
400000  = enable config cmd 0x10 for whole memory range
800000  = do cmd 0x12 with 0x2DFF000 flags
4000000  = mecha related (todo 0x135664)
8000000  = run loop that wait for 0xB52BB8 to be non zero
10000000 = watchpoint (if thread flag is set)
20000000 = timing setting for media validity check
80000000 = show health warning message
Need work
 
===Gxemu===
Localised at 0x3ED0 of emu memory.
1        = init done?
2        = load external bios.rom
4        = run sub_56784 and sub_56A6C
8        = unk
10      = run watchpoint opcode (debug halt) 0x3F02C
20      = set mecha 0x177AA4F to 2, and run sc8 (0x200) ___todo
40      = some setting for spe0_class0_int_handler
80      = enable gx cmd 0xC/0x22/0x23 for whole memory range
200      = check byte 0x6E6302 and do something if 2. Seems to disable media validity test. Set after EE hw init.
400      = set 0x3D60 to 1
800      = skip parsing internal config list
1000    = do gx cmd 0x1C with param 0x3E8 (1000)
4000    = enable cmd 0x0F for whole VU0 mem (per range setting is inaccessible from config!)
10000    = used as a param for sub_40054, unknown. Not available in netemu
20000    = skip auto setting gx cmd 0x19 for games from hashlist, and later in different sub. Also skip setting SCED error.
40000    = do gx cmd 0x12
80000    = skip running unk syscall
100000  = do gx cmd 0x19 (command unavailable in netemu? Looks different)
200000  = do gx cmd 0x04
400000  = enable gx cmd 0x0E for whole memory range
800000  = run sub sub_F1D78, seems to be much more complicated version of what netemu do here.
1000000  = set 0x3D63 to 1
Need even more work...
 
== Memory Map ==
=== Netemu ===
Tables at main page taken directly from emulator memory seems to be wrong. I double checked this and values are really there, but ea just don't match to what emulator code do (lpars are most likely correct there). So here it is memory map with addresses that emulator use when want to reach any of mentioned regions.
 
{| class="wikitable" style="font-size:small;"
|-
|-
! Name !! Start !! End !! Flags !! Notes
|Zettai Zetsumai Toshi (aka Disaster Report)  ||  ||  ||  ||  ||
|-
|-
| work
|Star Ocean: Till the End of Time  || || || ||  ||  
|| 0
|| 0x3200000
|| 3
|| separated into work 0x0-0x300000, ro_work 0x300000-0x800000, and rw_work 0x800000-0x32000000.
|-
|-
| menu_heap
|Star Ocean: Till the End of Time Director's Cut  || || || ||  ||  
|| 0xE000000
|| 0xE400000
|| 3
||
|-
|-
| negmem
|Pop'n Taisen Puzzle-dama Online  || || || ||  ||  
|| 0xFFFFFFFFFFFF0000
|| 0
|| 0x10000001
||
|-
|-
| ?
|Sony SCE DJ Box  || || || ||  ||  
|| 0x30000000
|| 0x30008000
|| 0x30000000
|| vu0
|-
|-
| spu_iop
|Dirge of Cerberus: Final Fantasy VII  || || || ||  ||  
|| 0x40000000
|| 0x40060000
|| 0xE0000001
||
|-
|-
| spu_spu2
|Romancing SaGa Minstrel's Song  || || || ||  ||  
|| 0x40080000
|| 0x400E0000
|| 0xE0000001
||
|-
|-
| spu_vu1
|Shin Sangoku Musou 3  || || || ||  ||  
|| 0x40100000
|| 0x40160000
|| 0xE0000001
||  
|-
|-
| spu_eedma
|Shin Sangoku Musou 3 Moushouden  || || || ||  ||  
|| 0x40180000
|| 0x401E0000
|| 0xE0000001
||
|-
|-
| fe
|Street Fighter ZERO Fighter's Generation  || || || ||  ||  
|| 0x40200000
|| 0x40260000
|| 0xE0000001
||  
|-
|-
| be
|Guitar Freaks 4th Mix & DrumMania 3rd Mix  || || || ||  ||  
|| 0x40280000
|| 0x402E0000
|| 0xE0000001
||  
|-
|-
| spu_ipu
|Beatmania IIDX 5th Style  || || || ||  ||  
|| 0x40300000
|| 0x40360000
|| 0xE0000001
||
|-
|-
| be
|Age of Empires II: The Age of Kings  || || || ||  ||  
|| 0x40380000
|| 0x403E0000
|| 0xE0000001
|| not working spu be on spe7
|-
|-
| SPC_SLB
|Musou Orochi Maou Sairin  || || || ||  ||  
|| 0x50061000
|| 0x50062000
|| 0xF0000000
|| for spu_iop
|-
|-
|   
|Winning Eleven 6: Final Evolution || || || ||  ||
|| 0x50063000
|| 0x50066000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|Winning Eleven 7  || || || ||  ||  
|| 0x50062000
|| 0x50063000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Winning Eleven 8:  || || || ||  ||  
|| 0x500E1000
|| 0x500E2000
|| 0xF0000000
|| for spu_spu2
|-
|-
|   
|Gundam Musou Special  ||  || || || ||  
|| 0x500E3000
|| 0x500E6000
|| 0xF0000000
||
3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|Gundam Musou 2  || || || ||  ||  
|| 0x500E2000
|| 0x500E3000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Shin Sangoku Musou 5 Special  || || || ||  ||  
|| 0x50161000
|| 0x50162000
|| 0xF0000000
|| for spu_vu1
|-
|-
|   
|Let's Bravo Music  ||  || || || ||  
|| 0x50163000
|| 0x50166000
|| 0xF0000000
||
3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|G1 Jockey 4 2007  || || || ||  ||  
|| 0x50162000
|| 0x50163000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Winning Post 7 Maximum 2007  || || || ||  ||  
|| 0x501E1000
|| 0x501E2000
|| 0xF0000000
|| for spu_eedma
|-
|-
|   
|TVware || || || ||  ||
|| 0x501E3000
|| 0x501E6000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|A Ressha de Ikou 2001 Perfect Set (A-Train 2001 + Train-Pack)  || || || ||  ||  
|| 0x501E2000
|| 0x501E3000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Ace Combat 4  || || || ||  ||  
|| 0x50261000
|| 0x50262000
|| 0xF0000000
|| for fe
|-
|-
|   
|The Urbz: Sims in the City || || || ||  ||
|| 0x50263000
|| 0x50266000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|The Sims 2  || || || ||  ||  
|| 0x50262000
|| 0x50263000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Metal Saga  || || || ||  ||  
|| 0x502E1000
|| 0x502E2000
|| 0xF0000000
|| for be
|-
|-
|   
|Biohazard Outbreak File 1 || || || ||  ||
|| 0x502E3000
|| 0x502E6000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|Biohazard Outbreak File 2  || || || ||  ||  
|| 0x502E2000
|| 0x502E3000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|G1 Jockey 4 2008  || || || ||  ||  
|| 0x50361000
|| 0x50362000
|| 0xF0000000
|| for spu_ipu
|-
|-
|   
|Vampire: Darkstalkers Collection || || || ||  ||
|| 0x50363000
|| 0x50366000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|Wild Arms Advanced 3rd  || || || ||  ||  
|| 0x50362000
|| 0x50363000
|| 0xF0000000
||
|-
|-
| SPC_SLB
|Taishou Mononoke Ibunroku  || || || ||  ||  
|| 0x503E1000
|| 0x503E2000
|| 0xF0000000
|| for unused be on spe7
|-
|-
|   
|Aero Dancing 4 || || || ||  ||
|| 0x503E3000
|| 0x503E6000
|| 0xF0000000
||
  3000 = SPC_MFC_CNTL
4000 = SPC_PUINT_MB
5000 = SPC_CSR1
|-
|-
| SPC_CSR
|Tamamayu Monogatari 2(Jade Cocoon 2)  || || || ||  ||  
|| 0x503E2000
|| 0x503E3000
|| 0xF0000000
||
|-
|-
| GSIF
|King of Colosseum Green/Red  || || || ||  ||  
|| 0xA0020000
|| 0xA0028000
|| 0x80000000
|| rsx
|-
|-
| NL
|Venus & Braves  || || || ||  ||  
|| 0xA0009000
|| 0xA000A000
|| 0x80000000
|| rsx
|-
|-
| rsx_driver_info
|All Star Pro-Wrestling II  || || || ||  ||  
|| 0xA0004000
|| 0xA0007000
|| 0x80000000
|| rsx
|-
|-
| rsx_dma_ctrl
|Winning Post 7 Maximum 2008  || || || ||  ||  
|| 0xA0030000
|| 0xA0050000
|| 0x80000000
|| rsx
|-
|-
| ?
|PoPoLoCrois Hajimari no Bouken  || || || ||  ||  
|| 0xA0008000
|| 0xA0009000
|| 0x80000000
|| rsx
|-
|-
| ohci_mmio
|Lilie no Atelier Plus Salburg no Renkinjutsushi 3  || || || ||  ||  
|| 0x60000000
|| 0x60001000
|| 0x60000000
||
|-
|-
| ehci_mmio
|Shadow Hearts 2  || || || ||  ||  
|| 0x60200000
|| 0x60201000
|| 0x60000000
||
|-
|-
| ohci_mmio
|Nobunaga no Yabou: Online  || || || ||  ||  
|| 0x60100000
|| 0x60101000
|| 0x60000000
||
|-
|-
| ehci_mmio
|Mina no Golf Online  || || || ||  ||  
|| 0x60300000
|| 0x60301000
|| 0x60000000
||
|-
|-
| base
|Sengoku Musō  || || || ||  ||  
|| 0x80000000
|| 0x80100000
|| 0x70000003
|| usb
|-
|-
| rawdata
|Sengoku Musō Moushouden  || || || ||  ||  
|| 0x80800000
|| 0x80900000
|| 0x70000003
|| usb
|-
|-
| iopdata
|Sengoku Musō 2  || || || ||  ||  
|| 0x81000000
|| 0x81100000
|| 0x70000003
|| usb
|-
|-
| base
|Sengoku Musō 2 Moushouden  || || || ||  ||  
|| 0x82000000
|| 0x82100000
|| 0x70000003
|| ehci? usb
|-
|-
| ehci_vars
|Sengoku Musō 2 Empires  || || || ||  ||  
|| 0x82800000
|| 0x82900000
|| 0x70000003
|| usb
|-
|-
| bchs_pmalloc
|Shin Sangoku Musou 3 Empires  || || || ||  ||  
|| 0x83000000
|| 0x83100000
|| 0x70000003
|| usb
|-
|-
| ?
|Shin Sangoku Musou 4  || || || ||  ||  
|| 0x83800000
|| 0x83900000
|| 0x70000003
||
|-
|-
| SB_CDVD
|Shin Sangoku Musou 4 Moushouden  || || || ||  ||  
|| 0x84000000
|| 0x84100000
|| 0x70000003
||
|-
|-
| SB_HDD
|Shin Sangoku Musou 4 Empires  || || || ||  ||  
|| 0x84800000
|| 0x84900000
|| 0x70000003
||
|-
|-
| ?
|Musou Orochi  || || || ||  ||  
|| 0x85000000
|| 0x85100000
|| 0x70000003
||
|-
|-
| SB_SIO2
|Nobunaga no Yabou: Kakushin  || || || ||  ||  
|| 0x85800000
|| 0x85900000
|| 0x70000003
|| only first 0x4000?
|-
|-
| vrc_area
|Nobunaga no Yabou: Soutensoku  || || || ||  ||  
|| 0x90000000
|| 0x91000000
|| 0xC00000003
|| vu1 recompiler area
|-
|-
| ee_cached
|Nobunaga no Yabou: Tenka Sousei  || || || ||  ||  
|| 0x200000000
|| 0x202000000
|| 0x100000003
||
|-
|-
| ?
|Nobunaga no Yabou: Ranseiki  || || || ||  ||  
|| 0x211004000
|| 0x211008000
|| 0x300000000
|| vu1 memory direct rw
|-
|-
| ee_rom
|Wild Arms Alter Code:F || || || ||  ||  
|| 0x21FC00000
|| 0x220000000
|| 0x300000000
||
|-
|-
| ee_uncached
|Kidou Senshi Gundam - Renpou vs. Zeon DX  || || || ||  ||  
|| 0x220000000
|| 0x222000000
|| 0x100000003
||
|-
|-
| ee_uncacc
|Mobile Suit Gundam - Federation vs. Zeon Deluxe || || || ||  ||  
|| 0x230000000
|| 0x232000000
|| 0x100000003
||
|-
|-
| ee_spr_lo
|Jikkyo Powerful Pro Yakyuu 12 Ketteiban || || || ||  ||  
|| 0x260000000
|| 0x260002000
|| 0x700000000
|| weird, that map directly to 0x60000000 ps2 address
|-
|-
| ee_spr_hi
|Jikkyo Powerful Pro Yakyuu 13  || || || ||  ||  
|| 0x270000000
|| 0x270006000
|| 0x800000000
|| ee scratchpad
|-
|-
| ee_kmem0
|Jikkyo Powerful Pro Yakyuu 13 Ketteiban  || || || ||  ||  
|| 0x280000000
|| 0x282000000
|| 0x100000003
||
|-
|-
| ?
|Jikkyo Powerful Pro Yakyuu 14  || || || ||  ||  
|| 0x291004000
|| 0x291008000
|| 0x300000000
|| vu1 data rw in kernel mode
|-
|-
| ?
|Jikkyo Powerful Pro Yakyuu 14 Ketteiban  || || || ||  ||  
|| 0x29FC00000
|| 0x2A0000000
|| 0x300000000
|| ee_rom in kernel mode
|-
|-
| ?
|Jikkyo Powerful Pro Yakyuu 15  || || || ||  ||  
|| 0x2A0000000
|| 0x2A2000000
|| 0x100000003
|| ee_uncached in kernel mode
|-
|-
| ?
|Jikkyo Powerful Major League 2  || || || ||  ||  
|| 0x2B1004000
|| 0x2B1008000
|| 0x300000000
|| vu1 data in kernel mode. Uncached, i doubt that is even accessible in ps2.
|-
|-
| ?
|Jikkyo Powerful Major League 3  || || || ||  ||  
|| 0x2BFC00000
|| 0x2C0000000
|| 0x300000000
|| ee_rom in uncached kernel mode
|-
|-
| ee_dbg
|Jikkyō Powerful Major League 2009  || || || ||  ||  
|| 0x2FFFF8000
|| 0x300000000
|| 0x900000000
||
|-
|-
| iop_mem
|Winning Post 5 Maximum 2002  || || || ||  ||  
|| 0x400000000
|| 0x400200000
|| 0x400000003
||
|-
|-
| iop_rom
|Winning Post 5 Maximum 2003  || || || ||  ||  
|| 0x4BFC00000
|| 0x4C0000000
|| 0x500000001
|| kernel mode
|-
|-
| iop_kmmio0
|Winning Eleven 5: Final Evoloution  || || || ||  ||  
|| 0x4BF800000
|| 0x4BF810000
|| 0x500000001
|| including iop_spad at first 0x1000
|-
|-
| ?
|Beni no Umi 2(Crimson Sea 2)  || || || ||  ||  
|| 0x4AFC00000
|| 0x4B0000000
|| 0x500000001
|| iop_rom, uncached?
|-
|-
| iop_kmmio1
|AirForce Delta Blue Wing Knights  || || || ||  ||  
|| 0x4AF800000
|| 0x4AF810000
|| 0x500000001
|| including iop_spad at first 0x1000
|-
|-
| spu2_ram
|G1 Jockey 3 2003  || || || ||  ||  
|| 0x600000000
|| 0x600400000
|| 0x600000003
|| starting from 0x200000 spu2_ram2
|-
|-
| ?
|Winning Post 6  || || || ||  ||  
|| 0x800000000
|| 0x800010000
|| 0x1000000001
||
|-
|-
| ?
|Winning Post 7  || || || ||  ||  
|| 0xC0000000
|| 0xCF800000
|| 0x1600000003
||
|-
|-
| sgs_xdr
|G1 Jockey 4  || || || ||  ||  
|| 0xB4000000
|| 0xB5700000
|| 0x1900000003
||
|-
|-
| ?
|G1 Jockey 4 2006  || || || ||  ||  
|| 0x40000000000
|| 0x40000010000
|| 0x1400000001
||
|-
|-
| ee_jit_code
|Winning Post 6: 2005 Nendoban  || || || ||  ||  
|| 0x10000000
|| 0x13000000
|| 0xD00000003
||
|-
|-
| vu0_jit_code
|G1 Jockey 3 2005 Nendoban  || || || ||  ||  
|| 0x18000000
|| 0x18400000
|| 0xD00000003
||
|-
|-
| vu0_jit_data
|Winning Post 7 Maximum 2006 || || || ||  ||  
|| 0x1C000000
|| 0x1C400000
|| 0xD00000003
||
|-
|-
| eeram_jit_lut
|Winning Post World  || || || ||  ||  
|| 0x20000000
|| 0x22000000
|| 0xE00000003
||
|-
|-
| eerom_jit_lut
|Winning Post World 2010  || || || ||  ||  
|| 0x2FC00000
|| 0x30000000
|| 0xE00000003
||
|-
|-
| ustack (micro stack)
|San Goku Shi 11 with Power-Up Kit || || || ||  ||  
|| 0xAAA70000000
|| 0xAAA70040000
|| 0x4200000000001
|| Thread KRN0:1 (aka BOOT00)
|-
|-
| ustack (micro stack)
|San Goku Shi 11  || || || ||  ||  
|| 0xAAA70040000
|| 0xAAA70080000
|| 0x4200010000001
|| Thread KRN1:1 (aka BOOT01)
|-
|-
| ustack (micro stack)
|San Goku Shi 10  || || || ||  ||  
|| 0xAAA70080000
|| 0xAAA700C0000
|| 0x42000B0000001
|| VU0 stack (used in EEonBE when VU0 is running)
|-
|-
| ustack (micro stack)
|San Goku Shi 9  || || || ||  ||  
|| 0xAAA700C0000
|| 0xAAA70100000
|| 0x4200030000001
|| Thread SYS
|-
|-
| ustack (micro stack)
|San Goku Shi 8  || || || ||  ||  
|| 0xAAA70100000
|| 0xAAA70140000
|| 0x4200040000001
|| Thread VRC
|-
|-
| ustack (micro stack)
|Nobunaga no Yabou: Kakushin with Power-Up Kit  || || || ||  ||  
|| 0xAAA70140000
|| 0xAAA70180000
|| 0x4200050000001
|| Thread MECHA
|-
|-
| ustack (micro stack)
|Nobunaga no Yabou: Soutensoku with Power-Up Kit  || || || ||  ||  
|| 0xAAA70180000
|| 0xAAA701C0000
|| 0x4200060000001
|| Thread HDD
|-
|-
| ustack (micro stack)
|Nobunaga no Yabou: Tenka Sousei with Power-Up Kit  || || || ||  ||  
|| 0xAAA701C0000
|| 0xAAA70200000
|| 0x4200070000001
|| Thread UI
|-
|-
| ustack (micro stack)
|Kessen III  || || || ||  ||  
|| 0xAAA70200000
|| 0xAAA70280000
|| 0x4200090000001
|| Thread BL2LNK and BL2MAIN
|-
|-
| ustack (micro stack)
|Winback 2:Project Poseidon  || || || ||  ||  
|| 0xAAA70280000
|| 0xAAA702C0000
|| 0x42000A0000001
|| Thread USB
|-
|-
| ustack (micro stack)
|Pro Soccer Club o Tsukurou Europe Championship  || || || ||  ||  
|| 0xAAA702C0000
|| 0xAAA70300000
|| 0x42000B0000001
|| Thread EEonBE
|-
|-
|}
|Winning Eleven Tactics: European Club Soccer || || ||  ||  ||  
 
|-}
== Negmem ==
 
Netemu use memory part called internally negmem. Memory is mapped to 0xFFFFFFFFFFFF0000, but emulator take advantage only of memory from 0xFFFFFFFFFFFF8000 to 0xFFFFFFFFFFFFFFFF. Why? Because that range is loadable with single opcode. How? By "r0" loads/stores (https://www.psdevwiki.com/ps3/Talk:PS2_Emulation#Netemu_load.2Fstore_with_r0_register). With that clever way emulator can access high addresses by setting negative offset for r0 register. This range is used for PS2 registers, DMAC status, next event delta, INTC, and many more. That way emu is able to load value from cached ps2 register in single opcode! Very clever idea!
 
Negmem memory map.
 
  // Accurate Mul/Div
  0xFFFFFFFFFFFF8094 = Storage for accurate mul/div
0xFFFFFFFFFFFF8098 = Storage for accurate mul/div
0xFFFFFFFFFFFF809C = Storage for accurate mul/div
// Cycles
0xFFFFFFFFFFFF8110 = r5900_cycles
// Accurate Add/Sub
0xFFFFFFFFFFFF8138 = Storage for accurate add/sub fs, also for result
0xFFFFFFFFFFFF8140 = Storage for accurate add/sub ft
// Cache checks
0xFFFFFFFFFFFF8180
  \
  |- 512 entries. 23 bits for PFN + 2 upper bits for Valid, and LFR flags.
  |- Checks are performed for 2 entries at 1 time.
/
0xFFFFFFFFFFFF897C
// r5900 GPRs
0xFFFFFFFFFFFF8980 = r5900_zero_upper64bits
0xFFFFFFFFFFFF8988 = r5900_zero_lower64bits
0xFFFFFFFFFFFF8990 = r5900_at_reg_upper64
0xFFFFFFFFFFFF8998 = r5900_at_reg_lower64
0xFFFFFFFFFFFF89a0 = r5900_v0_reg_upper64
0xFFFFFFFFFFFF89a8 = r5900_v0_reg_lower64
0xFFFFFFFFFFFF89b0 = r5900_v1_reg_upper64
0xFFFFFFFFFFFF89b8 = r5900_v1_reg_lower64
0xFFFFFFFFFFFF89c0 = r5900_a0_reg_upper64
0xFFFFFFFFFFFF89c8 = r5900_a0_reg_lower64
0xFFFFFFFFFFFF89d0 = r5900_a1_reg_upper64
0xFFFFFFFFFFFF89d8 = r5900_a1_reg_lower64
0xFFFFFFFFFFFF89e0 = r5900_a2_reg_upper64
0xFFFFFFFFFFFF89e8 = r5900_a2_reg_lower64
0xFFFFFFFFFFFF89f0 = r5900_a3_reg_upper64
0xFFFFFFFFFFFF89f8 = r5900_a3_reg_lower64
0xFFFFFFFFFFFF8a00 = r5900_t0_reg_upper64
0xFFFFFFFFFFFF8a08 = r5900_t0_reg_lower64
0xFFFFFFFFFFFF8a10 = r5900_t1_reg_upper64
0xFFFFFFFFFFFF8a18 = r5900_t1_reg_lower64
0xFFFFFFFFFFFF8a20 = r5900_t2_reg_upper64
0xFFFFFFFFFFFF8a28 = r5900_t2_reg_lower64
0xFFFFFFFFFFFF8a30 = r5900_t3_reg_upper64
0xFFFFFFFFFFFF8a38 = r5900_t3_reg_lower64
0xFFFFFFFFFFFF8a40 = r5900_t4_reg_upper64
0xFFFFFFFFFFFF8a48 = r5900_t4_reg_lower64
0xFFFFFFFFFFFF8a50 = r5900_t5_reg_upper64
0xFFFFFFFFFFFF8a58 = r5900_t5_reg_lower64
0xFFFFFFFFFFFF8a60 = r5900_t6_reg_upper64
0xFFFFFFFFFFFF8a68 = r5900_t6_reg_lower64
0xFFFFFFFFFFFF8a70 = r5900_t7_reg_upper64
0xFFFFFFFFFFFF8a78 = r5900_t7_reg_lower64
0xFFFFFFFFFFFF8a80 = r5900_s0_reg_upper64
0xFFFFFFFFFFFF8a88 = r5900_s0_reg_lower64
0xFFFFFFFFFFFF8a90 = r5900_s1_reg_upper64
0xFFFFFFFFFFFF8a98 = r5900_s1_reg_lower64
0xFFFFFFFFFFFF8aa0 = r5900_s2_reg_upper64
0xFFFFFFFFFFFF8aa8 = r5900_s2_reg_lower64
0xFFFFFFFFFFFF8ab0 = r5900_s3_reg_upper64
0xFFFFFFFFFFFF8ab8 = r5900_s3_reg_lower64
0xFFFFFFFFFFFF8ac0 = r5900_s4_reg_upper64
0xFFFFFFFFFFFF8ac8 = r5900_s4_reg_lower64
0xFFFFFFFFFFFF8ad0 = r5900_s5_reg_upper64
0xFFFFFFFFFFFF8ad8 = r5900_s5_reg_lower64
0xFFFFFFFFFFFF8ae0 = r5900_s6_reg_upper64
0xFFFFFFFFFFFF8ae8 = r5900_s6_reg_lower64
0xFFFFFFFFFFFF8af0 = r5900_s7_reg_upper64
0xFFFFFFFFFFFF8af8 = r5900_s7_reg_lower64
0xFFFFFFFFFFFF8b00 = r5900_t8_reg_upper64
0xFFFFFFFFFFFF8b08 = r5900_t8_reg_lower64
0xFFFFFFFFFFFF8b10 = r5900_t9_reg_upper64
0xFFFFFFFFFFFF8b18 = r5900_t9_reg_lower64
0xFFFFFFFFFFFF8b20 = r5900_k0_reg_upper64
0xFFFFFFFFFFFF8b28 = r5900_k0_reg_lower64
0xFFFFFFFFFFFF8b30 = r5900_k1_reg_upper64
0xFFFFFFFFFFFF8b38 = r5900_k1_reg_lower64
0xFFFFFFFFFFFF8b40 = r5900_gp_reg_upper64
0xFFFFFFFFFFFF8b48 = r5900_gp_reg_lower64
0xFFFFFFFFFFFF8b50 = r5900_sp_reg_upper64
0xFFFFFFFFFFFF8b58 = r5900_sp_reg_lower64
0xFFFFFFFFFFFF8b60 = r5900_fp_reg_upper64
0xFFFFFFFFFFFF8b68 = r5900_fp_reg_lower64
0xFFFFFFFFFFFF8b70 = r5900_ra_reg_upper64
0xFFFFFFFFFFFF8b78 = r5900_ra_reg_lower64
// r5900 COP0 Registers
0xFFFFFFFFFFFF8b80 = COP0_Index_REG
0xFFFFFFFFFFFF8b84 = COP0_Random_REG (unused)
0xFFFFFFFFFFFF8b88 = COP0_EntryLo0_REG
0xFFFFFFFFFFFF8b8c = COP0_EntryLo1_REG
0xFFFFFFFFFFFF8b90 = COP0_Context_REG
0xFFFFFFFFFFFF8b94 = COP0_PageMask_REG
0xFFFFFFFFFFFF8b98 = COP0_Wired_REG
0xFFFFFFFFFFFF8b9c = COP0_7_REG
0xFFFFFFFFFFFF8ba0 = COP0_BadVAddr_REG
0xFFFFFFFFFFFF8ba4 = COP0_9_REG
0xFFFFFFFFFFFF8ba8 = COP0_EntryHi_REG
0xFFFFFFFFFFFF8bac = COP0_Compare_REG
0xFFFFFFFFFFFF8bb0 = COP0_Status_REG
0xFFFFFFFFFFFF8bb4 = COP0_Cause_REG
0xFFFFFFFFFFFF8bb8 = COP0_EPC_REG
0xFFFFFFFFFFFF8bbc = COP0_15_REG
0xFFFFFFFFFFFF8bc0 = COP0_PRid_REG
0xFFFFFFFFFFFF8bc4 = COP0_17_REG
0xFFFFFFFFFFFF8bc8 = COP0_18_REG
0xFFFFFFFFFFFF8bcc = COP0_19_REG
0xFFFFFFFFFFFF8bd0 = COP0_20_REG
0xFFFFFFFFFFFF8bd4 = COP0_21_REG
0xFFFFFFFFFFFF8bd8 = COP0_22_REG
0xFFFFFFFFFFFF8bdc = COP0_BadPaddr_REG
0xFFFFFFFFFFFF8be0 = COP0_24_REG
0xFFFFFFFFFFFF8be4 = COP0_Perf_REG
0xFFFFFFFFFFFF8be8 = COP0_26_REG
0xFFFFFFFFFFFF8bec = COP0_27_REG
0xFFFFFFFFFFFF8bf0 = COP0_TagLo_REG
0xFFFFFFFFFFFF8bf4 = COP0_TagHi_REG
0xFFFFFFFFFFFF8bf8 = COP0_ErrorEPC_REG
0xFFFFFFFFFFFF8bfc = COP0_31_REG
// r5900 TLB
0xFFFFFFFFFFFF9110 = r5900_tlb
  \
  |- 48 entries
/
0xFFFFFFFFFFFF9400 = r5900_tlb_last
// IPU
0xFFFFFFFFFFFF9770 = IPU_cycles_unk
0xFFFFFFFFFFFF9774 = IPU_FFFF9774
0xFFFFFFFFFFFF9778 = IPU_CTRL
0xFFFFFFFFFFFF9780 = IPU_BP
0xFFFFFFFFFFFF9788 = IPU_TOP
0xFFFFFFFFFFFF9790 = IPU_FFFF9790
// Unk
0xFFFFFFFFFFFF97B0 = 0x20000000000
// Dump regs for debug
0xFFFFFFFFFFFF97C8 = Regs for dump
\
  |- Used in sub_11A640, to dump regs, then notify debugger.
/
0xFFFFFFFFFFFF98E0 = Last reg for dump
// Backup Regs
0xFFFFFFFFFFFF9920
\
  |- Another region do backup registers.
|- Used mostly when cmd 0x01 is running, but not only then.
/
0xFFFFFFFFFFFF99A0
// uintc (micro intc)
0xFFFFFFFFFFFFF000 = next event test delta (doubleword)
0xFFFFFFFFFFFFF08x = INTC_STAT      bits
0xFFFFFFFFFFFFF09x = INTC_MASK      bits
0xFFFFFFFFFFFFF0Ax = D_STAT.CIS      bits
0xFFFFFFFFFFFFF0Bx = D_STAT.CIM      bits
0xFFFFFFFFFFFFF0Dx = D_PCR.CPC      bits
0xFFFFFFFFFFFFF0E0 = D_PCR          full
0xFFFFFFFFFFFFF0E4 = INTC_STAT      full
0xFFFFFFFFFFFFF0E8 = INTC_MASK      full
0xFFFFFFFFFFFFF0EC = D_STAT          full
0xFFFFFFFFFFFFF0F0 = D_STAT upper 16 bits
 
== Shaders available in emulators ==
 
V for Vertex, F for Fragment, P for Pixel
 
===Netemu===
FontShader  V
FontShader  F
ImageShader  V
ImageShader  F
GaussShader0 V
GaussShader0 F
GaussShader1 V
GaussShader1 F
ScanShader  V
ScanShader  F
 
additionally 2 unnamed fragment shaders, 1 vertex shader,
and one "hidden" unaligned vertex shader (at 0x950270).
 
===Softemu===
GS Base Vertex program              V
GS Base Fragment program            P
Page Translate Out Vertex          V
Page Translate In Vertex            V
Page Translate Out Fragment        F
Page Translate Out Fragment_0      F
Page Translate Out PSMCT16 Fragment F
Page Translate Out PSMCT24 Fragment F
Page Translate Out PSMZ16 Fragment  F
Page Translate In Fragment          F
Page Translate In Fragment_0        F
Page Translate In PSMCT16 Fragment  F
Page Translate In PSMZ24 Fragment  F
Page Translate In PSMZ16 Fragment  F
Block PSMCT4 Translate Frag        F
Block PSMCT8 Translate Frag        F
Block PSMCT16 Translate Frag        F
Block PSMCT24 Translate Frag        F
Block PSMCT32 Translate Frag        F
Block PSMZ24 Translate Frag        F
Texture Block Translate Vertex      V
Notice that GS Base Fragment program is really not fragment shader, but pixel shader.
 
===Gxemu===
CG_fp_dilate        F
CG_fp_shrink        F
CG_fp_adjweave      F
CG_fp_motionadj    F
CG_fp_undither      F
CG_fp_deinterlace  F  x
CG_fp_weave        F
CG_fp_edgeinterp    F
CG_fp_smooth        F
CG_fp_sharpen      F  x
CG_fp_upscale_smart F  x
CG_fp_upscale      F  x
CG_fp_smart        F  x
CG_fp_mofix        F  x
CG_fp_orientation  F  x
CG_fp_gradient      F  x
CG_vpshader        V  x
CG_interlace        F
CG_fpshader16      F
CG_fpshader        F  x
 
Plus 2 unnamed shaders, one F, one V.<br>
Shaders with "x" are also available in PS1 emulators, and i sucessfully replaced some of them in ps1 emu on rpcs3 for testing purpose.
 
===Emu===
Ps2emu have available 14 fragment shaders, and 8 vertex shaders. All of them don't give any hint about name or usage.
 
== Custom command ideas ==
 
* '''Disable GS downloads.'''<br>
It is definitely a performance improvement for many titles. In theory, easy to implement (force 0x3 TRXDIR value for every 0x1 write instead). The point is, per-game patches are superior and more robust.<br>
* '''Disable PCRTC blur.'''<br>
PCRTC merge circuits are mostly used for pathetic blurry anti-aliasing. Looks awful on modern TV screens (ToCA 3 is unreadable completely). Blending settings are controlled through the PMODE privileged register. Partially implemented here: [[Talk:PS2_Emulation#Remove_PCRTC_Blur_for_Netemu|Link]]
 
 
===Discussion===
GS download config is partially done, need little bit more than TRXDIR patch. But this is something we can patch per-game too. Games do very obvious things to reverse VIF1 FIFO, and also BUSDIR write. From there you can disable whole function that need it. Config will be better of course, but HEN users... Anti Blur is kinda easy to do. Writes to DISPLAY1 can write also to 2 and write to 2 also to 1. So they always match, and config implementation will be rather easy. Most games just offset DX/DY, and never touch those regs again. For games that mess with it, more serious approach is needed. But again HEN users are out of luck if we create command for that. It doesn't help that this can be done by EE patches too. What need to be done is removing offset between DISPLAY1 and DISPLAY2.
*Example for TOCA3 SLUS which use hard coded offset:
004C55F0 00000000
004C55F4 00000000
I'm not saying no, but for now i'm kinda lacking of motivation if not so small HEN user base will be out of luck. But more ideas can help with motivation. :P --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 22:00, 8 August 2023 (CEST)
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)