Talk:PS2 Emulation

From PS3 Developer wiki
Jump to navigation Jump to search

Table Tests

PS2 Emulator Types and Revisions

PS2 Emulators Types and Revisions
ps2_emu.elf (decrypted)
Firmware Bytes MD5 Timestamp Rev Comm
1.00 AV 8 258 328 19DC714F1109FF772BEF5B00C4AF2CF7 06/10/04/12:15 ? ?
1.02 8.258.504 FF9C1C465DF6F501E418602A488CBD40 06/10/21/00:01 ? ?
1.10 8.254.568 72EFF1FB3E9A175253687634B698CC91 06/11/09/06:08 ? ?
1.11 8.255.192 98BCC06ACA07971DFE57A126000B6DEE 06/11/21/17:54 ? ?
1.30 8.787.800 3F1E943139329E8AD5461FA43DB4DD0E 06/12/05/05:33 same ?
1.30 AV 8.787.800 F2CE2D8CF41FF38E586AE7A91A13980C 06/12/05/07:15
1.31 8.790.440 CF13D31F202DA3C55009C06B6A2B27A0 06/12/12/18:47 ? ?
1.32 8.794.664 6DD631EEDE321AC7F59C85BC6AC0DCA9 06/12/18/05:54 ? ?
1.50 8.805.912 81B38EE824E460385B44FADE78CAA5DC 07/01/18/22:52 ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
1.90 5.190.280 88B26FDC910B8633613BC366D39F439D 07/07/21/06:44 ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
3.66 5.267.112 BE20230D091F5C8AB8364607D49A6992 11/06/16/03:51 same ?
~ Any
3.74 5B2CA12EE08298094177667C681BC75F 11/10/25/00:30
4.00 5.272.152 08516640BE636F3E633C0416F09EF941 11/11/22/03:10 same ?
4.01 61ECD51036247547736274EEB52FA4C4 11/12/23/01:02
4.10 5.272.008 88CFD465D2F412C075C69531278BB3A9 12/02/05/23:08 same ?
4.11 2B45F72675B844C08E1735059F9826E3 12/02/11/07:05
4.20 5.272.264 23D3F9909EBA3F1AB0D757850C5D6809 12/06/15/02:01 same ?
4.21 110F0D01B39193F1A2031BBC7ADBBC2F 12/06/30/01:06
4.23 S 5.271.912 783201F2541117E545B8E01B3A0B1955 12/07/31/00:17 ? ?
4.25 5.272.264 C895EAA3F79BA2040D6C828A5B811139 12/09/07/06:55 ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
4.78 5.274.984 ABC9228FCEA0E779E3157CA546A1FD02 15/12/17/01:14 same ?
~ Any
4.82 FAA3EAE26B3311DE78C5FB5788CFEC11 17/08/24/15:38

  ·  Decrypted (elf): changes every firmware version
  ·  Build label: yes, with timestamp, search for ps2ver:
  ·  Target Firmware: no/unknown
  ·  Revision: unknown

ps2_gxemu.elf (decrypted)
Firmware Bytes MD5 Rev Comm
1.00 ~ 1.32 No
1.50 6.106.040 BACC208C8A793F82D71F85B02DD2D318 ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
1.90 6.802.720 B9E2CC8D72779650D9B500B75AE552EB ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
3.66 ~ 3.74 6.867.024 E04FA0FE63A968C53AE366B3AAD0141A ? ?
4.00 ~ 4.11 6.871.848 D5E97019132848203970213FF96F2AAB ? ?
4.20 ~ 4.25 6.872.128 678F16283CAA8CFBC03A5FBCB6ABA41E ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
4.78 ~ 4.88 6.874.848 C7681420A7B3A2A6E3BF89F4A12A3DD6 ? 0x2B ?

  ·  Decrypted (elf): changes every emu revision
  ·  Build label: no/unknown
  ·  Target Firmware: no/unknown
  ·  Revision: unknown

ps2_softemu.elf (decrypted)
Firmware Bytes MD5 Rev Comm
1.00 ~ 1.82 No
1.90 ~ 1.94 6.142.080 812330515D01291488315BBE7E0F339E 11065 ?
1.97 ? ? ? ?
2.00 ~ 2.10 ? ? 11830 ?
2.16 ? ? ? ?
? ~ ? ? ? ? ?
3.10 ? ? ? ?
3.15 ? ? 12840 ?
3.16 ? ? ? ?
? ~ ? ? ? ? ?
3.40 ? ? ? ?
3.41 ~ 3.65 ? ? 13474 ?
3.66 ~ 3.71 6.147.120 513B9160AD8C199CAEFC82C1B7D9D794 15435 ?
3.72 ~ 4.01 6.146.992 1232D3EEB48F301CBB61D76EB3046111 15529 ?
4.10 ~ Template:Latest No

  ·  Decrypted (elf): changes every emu revision
  ·  Build label: no/unknown
  ·  Target Firmware: no/unknown
  ·  Revision: unknown

ps2_netemu.elf (decrypted)
Firmware Bytes MD5 Rev Comm
1.00 ~ 3.66 No
3.70 ~ 3.71 11.036.504 0D021D18CC63DDBDA530A93C41ABF865 15686 0x41
3.72 11.036.504 38EABD7E5F998BC04922CA3B70211208 15842
3.73 ~ 3.74 11.036.504 F21110A93BBEA416749283E6BF3D3C6B 15936
4.00 ~ 4.01 11.033.048 F770442DFA626282B01FEBE3DDFFC477 16195
4.10 ~ 4.11 11.033.216 8F0885BCC80A3617E654BB6151F4F718 16361
4.20 ~ 4.23 11.033.728 8EB5492E453C50B6D728E7999A57A689 16604 0x43
4.25 ~ 4.26 11.033.728 E38059300E31432A62967770C3E99EF6 16740
4.30 ~ 4.31 ? ? 16808 0x45
4.40 ~ 4.41 ? ? 16916 0x46
4.45 ~ 4.46 ? ? 17041 0x48
4.50 ? ? 17179 0x4A
4.55 ? ? 17277 0x4D
4.60 ~ 4.76 ? ? 17314
4.78 ~ 4.88 10.442.536 8B2DBD1AAD22A0EDCF9C867A1A1FB94D 17495 0x50

  ·  Decrypted (elf): changes every emu revision
  ·  Build label: yes, without timestamp, search for build r
  ·  Target Firmware: included in the build label
  ·  Revision: yes, one time, and included in the build label


PS2 Emulators Config Commands

PS2 Emulators Config Commands Overview
Command Name Command ID Max
Usage
Command Data
ps2_gxemu ps2_softemu ps2_netemu Length Valid Values
Config terminator or TitleID enforcer No No 0x00 1 Nothing or 0xA bytes TitleID
Hook EE memory offset with emu function 0x00 0x00 0x01 3 ? 2 * uint32_t EE memory offset emu function
Set something 0x01 0x01 0x02 1 uint32_t 1000=?
3000=?
6000=?
Switch something 0x02 0x02 0x03 1 Nothing
Set something 0x03 0x03 0x04 1 uint32_t 8=?
0x10=?
Switch something 0x04 0x04 0x05 1 Nothing
Switch something 0x05 0x05 0x06 1 Nothing
Delay VU xgkick by X cycles 0x06 0x06 0x07 1 uint32_t cycles
Patch VU memory by bitmask 0x07 0x07 0x08 3 8 * uint32_t BITMASK
Patch EE memory with 2 opcodes 0x08 0x08 0x09 132 uint32_t + LIST count LIST entries
Patch EE memory with 1 opcode No No 0x0A 132 uint32_t + LIST count LIST entries
Patch game disc by sector & offset 0x09 0x09 0x0B 147 uint32_t + LIST count LIST entries
Set something 0x0A 0x0A 0x0C 1 2 * uint16_t 0=?
1=?
2=?
0=?
0x180=?
0x400=?
0x800=?
Set something 0x0B 0x0B 0x0D 1 uint32_t 0=?
1=?(default?)
FPU? ADD/SUB accurate opcode 0x0C 0x0C 0x0E 31 uint32_t opcode
FPU MUL/DIV/SUB/ADD accurate range 0x0D 0x0D 0x0F 31 2 * uint32_t start offset end offset
COP2 MUL/DIV/SUB/ADD accurate range 0x0E 0x0E 0x10 31 2 * uint32_t start offset end offset
VU ADD/SUB accurate opcode 0x0F 0x0F 0x11 31 uint32_t opcode
? 0x10 0x10 0x12 163 uint32_t + LIST ? count ? LIST entries
IOP/SIO2/MC related ? 0x11 0x11 0x13 1 uint64_t timing ?
Switch something 0x12 0x12 0x14 1 Nothing
Set something (with bit flags) 0x13 0x13 0x15 1 uint32_t 2=? (gxemu and softemu only)
0x14=? (softemu only)
4=?
? 0x14 ? 0x14 ? 0x16 ? ?
Set something 0x15 0x15 0x17 1 uint8_t 0=?
1=?
Switch something 0x16 0x16 0x18 1 Nothing
Switch something No 0x17 0x19 1 Nothing
Switch something 0x17 0x18 0x1A 1 Nothing
Switch something 0x18 0x19 0x1B 1 Nothing
Set something 0x19 ? 0x1A ? 0x1C 1 uint8_t ?
Set something 0x1A 0x1B 0x1D 1 uint8_t 2=?
Set something 0x1B No 0x1E 1 uint8_t 3=?
Set something 0x1C 0x1C 0x1F 1 uint32_t 200=?
1000=?(default)
Set something 0x1D 0x1D 0x20 1 uint64_t 10=?
60=?(default)
100=?
120=?
200=?
240=?
Set something 0x1E 0x1E 0x21 1 uint32_t 0=?
1=?
2=?
Command Name Command ID Max
Usage
Command Data
ps2_gxemu ps2_softemu ps2_netemu Length Valid Values
Switch something 0x1F 0x1F 0x22 1 Nothing
Switch something No 0x20 0x23 1 Nothing
Internal image aspect ratio ? 0x20 0x21 0x24 1 uint64_t 12000=?
48000=?
Switch something 0x21 0x22 0x25 1 Nothing
FPU ADD/SUB accurate range 0x22 0x23 0x26 31 2 * uint32_t start offset end offset
COP2-VU0 MUL/DIV/SUB/ADD accurate range 0x23 0x24 0x27 31 2 * uint32_t start offset end offset
Set something (MECHA) 0x24 ? 0x25 ? 0x28 1 uint32_t 0=?
1=?
2=?
3=?
Set something (MECHA) 0x25 ? 0x26 ? 0x29 1 2 * uint32_t ? ?
Switch something 0x26 ? 0x27 0x2A 1 Nothing
Switch something (MECHA) 0x27 ? 0x28 0x2B 1 Nothing
Set something 0x28 0x29 0x2C 1 uint32_t 1=?
Switch something 0x29 ? 0x2A 0x2D 1 Nothing
Set something 0x2A 0x2B 0x2E 1 uint32_t 0x172=?
Set something 0x2B No ? 0x2F 1 uint32_t 1=?
? No ? No ? 0x30 ? ?
? No ? No ? 0x31 ? ?
? No ? No ? 0x32 ? ?
? No ? No ? 0x33 ? ?
? No ? No ? 0x34 ? ?
Enable Force Flip Field No No 0x35 1 Nothing
? No ? No ? 0x36 ? ?
? No ? No ? 0x37 ? ?
? No ? No ? 0x38 ? ?
? No ? No ? 0x39 ? ?
? No ? No ? 0x3A ? ?
? No ? No ? 0x3B ? ?
? No ? No ? 0x3C ? ?
Config file revision No No 0x3D 1 uint32_t >=15686
Disable something No No 0x3E 1 Nothing
Set something No No 0x3F 1 uint32_t ?
Switch something No No 0x40 1 Nothing
Disable lwsync ? No No 0x41 1 Nothing
Patch EE memory by overlay No No 0x42 11023 2 * uint32_t + LIST address, count LIST entries
Set something No No 0x43 1 uint32_t 0=?(default)
1=?
Disable Smoothing filter No No 0x44 1 Nothing
Switch something No No 0x45 1 Nothing
Enable L2H Improvement No No 0x46 1 Nothing
Enable XOR CSR No No 0x47 1 Nothing
Set VSYNC IPU & Delay No No 0x48 1 2 * uint32_t ipu type delay
Switch something No No 0x49 1 Nothing
Switch something No No 0x4A 1 Nothing
Set something No No 0x4B 1 2 * uint32_t ? ?
Set something No No 0x4C 1 2 * uint32_t ? ?
Set something No No 0x4D 1 uint32_t ?
? No No 0x4E 1 ?
? No No 0x4F 1 ?
Switch something No No 0x50 1 Nothing


  • Notes
    • The colors used at the cells of the left column in the table are just temporal, later willl be needd to decide if using them, how many to color, and the color palette used in them... by now works a bit as an small hint of the complexity of the commands, and a rought way of grouping them
    • This table was not intended to replace the other in frontpage, there is some info in the other that is not here, and here there is some info that is not in the other (and this is a problem), what happened is this table started growing and is at a point where can be done two different things with it, we can step back and simplify it (by removing the columns at right and the redundant info with the table of frontpage), or we can continue expanding it by adding here the info of the other table in frontpage

ps2_netemu cmd 0x01 function comparison

netemu 0x01 gxemu 0x00 softemu 0x00
3.70~Template:Latest 3.70~3.74 4.00~4.01 4.10~4.25 4.78~4.82 4.78~4.82 3.72~4.01
funct_id funct_offset funct_offset funct_offset funct_offset funct_offset funct_offset
0x00 0x46720 0x42E00 0x42EB8 0x42F70 0x36B40 0x2FEF0
0x01 0x42DB0 0x42EC4 0x42F7C 0x43034 0x35FB0 0x31E38
0x02 0x44394 0x4456C 0x44560 0x447C0 0x34068 0x30220
0x03 0x442B4 0x4448C 0x44480 0x446E0 0x34144 0x302FC
0x04 0x43100 0x43214 0x432CC 0x43384 0x33F98 ? 0x30150
0x05 0x46A90 0x46DB4 0x47184 0x4745C 0x36CF8 0x31D08
0x06 0x46D64 0x46AE0 0x46934 0x46D20 0x34224 0x303DC
0x07 0x47134 0x47154 0x47524 0x47C1C 0x37850
0x08 0x42E7C 0x42F90 0x43048 0x43100 0x33DFC 0x2FFB4
0x09 0x42F54 0x43068 0x43120 0x431D8 0x36C04 0x31C14
0x0A 0x431C4 0x432D8 0x43390 0x43448 0x36EF0 0x31FCC
0x0B 0x4329C 0x433B0 0x43468 0x43520 0x34354
0x0C 0x441BC 0x44394 0x44388 0x445E8 0x34424 0x30518
netemu 0x01 gxemu 0x00 softemu 0x00
3.70~Template:Latest 3.70~3.74 4.00~4.01 4.10~4.25 4.78~4.82 4.78~4.82 3.72~4.01
funct_id funct_offset funct_offset funct_offset funct_offset funct_offset funct_offset
0x0D 0x440E0 0x442B8 0x442AC 0x4450C 0x34520
0x0E 0x44004 0x441DC 0x441D0 0x44430 0x345FC 0x306F0
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 0x311F8
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 0x31664
0x19 0x4706C 0x46FC0 0x4745C 0x47A88 0x36E28 0x31F04
0x1A 0x45844 0x45A1C 0x45A0C 0x45C6C 0x37614 0x325B4
netemu 0x01 gxemu 0x00 softemu 0x00
3.70~Template:Latest 3.70~3.74 4.00~4.01 4.10~4.25 4.78~4.82 4.78~4.82 3.72~4.01
funct_id funct_offset funct_offset funct_offset funct_offset funct_offset funct_offset
0x1B 0x45094 0x4526C 0x45260 0x454C0 0x35434 0x31798
0x1C 0x44FC4 0x4519C 0x45190 0x453F0 0x354F8 0x30A88
0x1D 0x44EF4 0x450CC 0x450C0 0x45320 0x355BC
0x1E 0x44E24 0x44FFC 0x44FF0 0x45250 0x35680
0x1F 0x44D54 0x44F2C 0x44F20 0x45180 0x35744
0x20 0x44C84 0x44E5C 0x44E50 0x450B0 0x35808
0x21 0x44BB4 0x44D8C 0x44D80 0x44FE0 0x358CC
0x22 0x44AE4 0x44CBC 0x44CB0 0x44F10 0x35990
0x23 0x44A14 0x44BEC 0x44BE0 0x44E40 0x35A54
0x24 0x44944 0x44B1C 0x44B10 0x44D70 0x35B18
0x25 0x44874 0x44A4C 0x44A40 0x44CA0 0x35BDC
0x26 0x447A4 0x4497C 0x44970 0x44BD0 0x35CA0
0x27 0x446D4 0x448AC 0x448A0 0x44B00 0x35D64
0x28 0x44604 0x447DC 0x447D0 0x44A30 0x35E28
0x29 0x44534 0x4470C 0x44700 0x44960 0x35EEC
0x2A 0x44464 0x4463C 0x44630 0x44890 0x35158
netemu 0x01 gxemu 0x00 softemu 0x00
3.70~Template:Latest 3.70~3.74 4.00~4.01 4.10~4.25 4.78~4.82 4.78~4.82 3.72~4.01
funct_id funct_offset funct_offset funct_offset funct_offset funct_offset funct_offset
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 0x00000 0x00000 0x00000 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


ps2_netemu cmd 0x01 funct_offsets_table

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

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

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)


  • funct_offset_table location by ps2_netemu versions:
    • Table v1 (the table contains the same data)
      • Firmware:370-371 offset:0x897ED8 length:0x1C8
      • Firmware:372 offset:0x897ED8 length:0x1C8
      • Firmware:373-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-423 offset:0x8972F8 length:0x1C8
      • Firmware: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-482 offset:0x8063f8 length:0x1E0

Game CONFIG commands (notepad and worklog)

All info here related with commands needs to be moved to frontpage at some point

ps2_netemu command 0x1

There are some additional internal patches using CONFIG cmd id 0x01, using subs not available in 0x3B list

condition: 0xBBB5F800, 0x3B949C00, 0x42133A90
setting: 
  0x18E1F0, sub_4670C (4.70)
  0x348EC8, sub_44338 (4.70)

in id0x01, function id 0x18 
condition:  [ 0x20183F04 (+200000000 base) ] == 0x0C060F2C
setting:
  stores 0 in address 0x20183F04, 0x20183F34, 0x20183F3C - with 200000000 base
  0x183F0C, sub_46334 (4.70)
  0x183F3C, sub_45DA4 (4.70)
  0x183D74, sub_47B50 (4.70)

ps2_netemu command 0x5

This command seems to be disabled in netemu, but is used in gxemu with ID 0x4

  • There are several games that uses it in his config data hardcoded inside ps2_gxemu.self such:
    • SLES-51823 | 1 | cmd: 0x4 Hunter: The Reckoning Wayward
    • SLES-54135 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories
    • SLES-54136 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories
    • SLES-54622 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories
    • SLES-54623 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories
    • SLPM-65340 | 1 | cmd: 0x4 Shinseiki Evangelion: Ayanami Ikusei Keikaku with Asuka Hokan Keikaku
    • SLPM-66275 | 1 | cmd: 0x4 Onimusha : Dawn of Dreams
    • SLUS-20001 | 1 | cmd: 0x4 Tekken Tag Tournament
    • SLUS-21423 | 1 | cmd: 0x4 Grand Theft Auto: Liberty City Stories
    • SLUS-21590 | 1 | cmd: 0x4 Grand Theft Auto: Vice City Stories

ps2_netemu command 0x12

type 1

Playground discussion, unsure about clrlslwi r11, r0, 16,3 result

 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 


 type 1: (Syphon Filter The Omega Strain	)
	*0x48  | ptr to 1st value *0x2A4 (0x15F)
	*0x50  | count of type values

        (0x18990031 >> 0xC) & 0xFFFF0 = 0x18990
        (0x18B60032 >> 0xC) & 0xFFFF0 = 0x18B60

	store value in [0x18990 + ??? ] 
	
seg017:0000000000198498 next_value:                             # CODE XREF: read_id0x12_type_1+120�j
seg017:0000000000198498                 lwz       r0, 0(r10)    # -> 0x18990031
seg017:000000000019849C                 addi      r8, r8, 1     # counter
seg017:00000000001984A0                 ld        r29, 0(r31)
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
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

type 2

Fix on Interpretation?

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:
	*0x20C | counter
	*0x210 | 1st value: 0x15F      -> only gets compared, if passed check 2nd value
	*0x214 | 2nd value: 0x2C6FBD8D -> only gets compared, if passed use *0x218 + *0x21C
	*0x218 | 1 ( = count - 2)
        *0x21C | ptr to 3rd value *0x2AC (0x367)

type 3

 Example Primal
	*0x11B4| counter
	*0x11B8| -1 -> 0x399B60? 
	*0x11BC| 0 -> 0x399B60?
	*0x11C0| ptr to *0x2C4 values
	*0x11C4| count (2)

	r11 = r0 & 0xFFFFFFF = 0x10399B60 & 0xFFFFFFF = 0x399B60
	0x10399C18 & 0xFFFFFFF = 0x399C18

	r3 = r31 >> 28 = 0x10399B60 >> 0x1C = 1
	a check if 1,2

type 4

        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

---big handler, different register settings?---

XMB messages related with PS2 Emulation

Code Sample

Orphan info

This is misterious info that cant be unveilled

ps2_netemu

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

Cold Fear

frequenlty, as if you pressed pause
0x46
0x19

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: p3dwik-ps2compatfiles.rar
Possible compatibility Lists:


boot_ps2

http://foxbrew.org/ps3/otheros-utils/boot_ps2.git
http://www.multi...upload.com/QKK7ETPHXZ boot_ps2-src.rar (1.43 KB)
http://www.multi...upload.com/YCZ63Y6TQ5 boot_ps2.pkg (69.17 KB)

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)

boot_ps2 4.xx eboots.zip (153 KB)
installing 3.55 pkg and replacing the eboot and editing the sfo should work.

Enable Playstation 2 on non BC's

[Getting Playstation 2 Software Emulator working]

XMB Game Settings non BC/BC,patched


























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) // Euss
  • Without Factory Service Mode : gives "Incompatible Data" when inserting PS2 disc
  • When enabling 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 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 LV2Patcher or 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: boot_ps2.pkg and Factory Service Mode seem to enable simulare (it tries to boot it) while boot_ps2.pkg gives you more options e.g. using 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 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 boot_ps2.pkg gives blackscreen lockup, not reacting on PS button, or powerbutton, requiring removing powercord.


considering titles to test

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

Title DiscID Disc Icon ps2_softemu Remarks
Normal FSM 2.50 2.60 2.70
Action Replay MAX SCED54409
PS2CD icon
No
Battlefield 2 Modern Combat SLES53729
PS2DVD icon
No
Constantine SLES52872
PS2DVD icon
No
Demo Disc 3-073-543-11 PBPX95514
PS2DVD icon
No
EyeToy Play SCES51513
PS2DVD icon
No
EyeToy Play 2 SCES52748
PS2DVD icon
No
EyeToy Play 3 SLES53315
PS2DVD icon
No
Freedom Fighters SLES51467
PS2DVD icon
No
Ghost in the Shell Standalone Complex SLES53020
PS2DVD icon
No
GoldenEye Rogue Agent SLES52974
PS2DVD icon
No
Guerrilla Strike SLES53344
PS2CD icon
No
Gunfighter 2 Revenge of Jessy James SLES51289
PS2CD icon
No
Half Life SLES50504
PS2CD icon
No
HDLoader -
PS2CD icon
No
International Golf Pro SLES52349
PS2CD icon
No
Jet Ion GP SLES50544
PS2CD icon
No
killer7 SLES53366
PS2DVD icon
No
Kya Dark Lineage SLES51473
PS2DVD icon
No
London Racer Destruction Madness SLES53654
PS2CD icon
No
London Racer Police Madness SLES53536
PS2CD icon
No
Manhunt SLES52023
PS2DVD icon
No
Max Play - 10 Classic Retro Games -
PS2CD icon
No
Medal of Honor European Assault SLES53332
PS2DVD icon
No
Medal of Honor Frontline SLES50684
PS2DVD icon
No
Medal of Honor Rising Sun SLES51873
PS2DVD icon
No
Medal of Honor Vanguard SLES54683
PS2DVD icon
No
Men in Black II Alien Escape SLES50789
PS2DVD icon
No
Network Access Disc SCES51578
PS2DVD icon
No
OPM #66 SCED54409
PS2DVD icon
No
OPM #67 SCED54410
PS2DVD icon
No
OPM #68 SCED54412
PS2DVD icon
No
OPM #69 SCED54413
PS2DVD icon
No
OPM #70 SCED54415
PS2DVD icon
No
OPM #72 SCED54417
PS2DVD icon
No
OPM #73 SCED54418
PS2DVD icon
No
OPM #74 SCED55113
PS2DVD icon
No
OPM #75 SCED55114
PS2DVD icon
No
OPM #77 SCED55117
PS2DVD icon
No
OPM #79 SCED55119
PS2DVD icon
No
Perfect Ace Pro Tournament Tennis SLES51735
PS2CD icon
No
Prisoner of War SLES50397
PS2DVD icon
No
Ratchet & Clank 3 SCES52456
PS2DVD icon
No
Red Baron SLES53434
PS2CD icon
No
SAS Anti-terror Force SLES53435
PS2CD icon
No
Second Sight SLES52670
PS2DVD icon
No
Seek and Destroy SLES51603
PS2CD icon
No
Silent Hill 3 SLES51434
PS2DVD icon
Yes No
Socom US Navy SEALs SCES50928
PS2DVD icon
No
Socom II US Navy SEALs SCES51904
PS2DVD icon
No
Socom 3 US Navy SEALs SCES53300
PS2DVD icon
No
Socom US Navy SEALs Combined Assault SCES54477
PS2DVD icon
No
Swap Magic 3 plus (PAL version 3.6) CD SCED54409 No - No
Swap Magic 3 plus (PAL version 3.6) DVD SCED54409
PS2DVD icon
Yes No
Tenchu Wrath of Heaven SLES50679
PS2DVD icon
No
Terminator 3 Rise of the Machines SLES52152
PS2DVD icon
No
The Great Escape SLES51315
PS2DVD icon
No
The Hulk SLES51508
PS2DVD icon
Yes No
The Matrix Path of Neo SLES53799
PS2DVD icon
No
The Plan SLES53965
PS2CD icon
No
Time Crisis 3 SCES51844
PS2DVD icon
No
Tom Clancy's Ghost Recon SLES51181
PS2DVD icon
No
Tom Clancy's Rainbow Six 3 SLES52288
PS2DVD icon
No
Tom Clancy's Splinter Cell SLES51466
PS2DVD icon
No
Tom Clancy's Splinter Cell Chaos Theory SLES53007
PS2DVD icon
No
Tom Clancy's Splinter Cell Pandora Tomorrow SLES52149
PS2DVD icon
No
Trapt SLES53824
PS2DVD icon
No

Tests on NON-BC CECHP01/NTSC-U (Firmware 2.60/boot_ps2.pkg)



Amplitude - Intro prompts are completely glitched, unresponsive to controller input.
Backyard Football 2007 - Graphical glitches during menu and gameplay. Frame rate is okay.
Boogie - Intro FMV runs very slow, fails to recognize input after the title screen.
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

Game compatibility lists

There was some game compatibility tables here that was intended as a layout with lot of game names but no info about them that was never used

The info has been moved to: Talk:PS2 Emulation/Old PS2 Game Compatibility Lists