Talk:PSP Emulation: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) No edit summary |
|||
(48 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= PSP emulator_api ad hoc play connection errors = | |||
Translations from Japanese error messages: | |||
<pre> | |||
0002 This channel did not have any room playing the same game | |||
1005 Upon your use of this application, you will need to agree to the Terms of Use | |||
2001 Network connection has expired. You will return to the title screen | |||
2002 Network connection has expired. You will return to the title screen | |||
2007 You cannot connect to ad hoc. Please check the information page | |||
3001 You cannot connect to the network. Please check the information page | |||
0002 This | |||
1005 Upon your use of this application, you | |||
2001 Network connection | |||
2002 Network connection | |||
2007 You | |||
3001 You | |||
3003 There is no possible connection server | 3003 There is no possible connection server | ||
4001 You | 4001 You cannot connect to the network. Please check information page | ||
4001 You | 4001 You cannot connect to the network. Please check information page | ||
4004 | 4004 You have exceeded the number of created rooms | ||
4005 | 4005 You have exceeded the maximum number of bookmarks. Please register again by removing unnecessary bookmark | ||
4006 The lobby is a registered | 4006 The lobby is a registered | ||
4007 | 4007 You will return to the title screen because no operation has been performed for a certain period of time | ||
5002 This room is taking entry limit | 5002 This room is taking entry limit | ||
5005 Because the connection type of network is different, you | 5005 Because the connection type of network is different, you cannot play in this room. Please check the manual | ||
5006 | 5006 Transmission of comments | ||
6001 You | 6001 You cannot change the wallpaper as the HDD free capacity is insufficient. To make the change of wallpaper you need free space of more than 17MB. | ||
6002 The size of the image | 6002 The size of the image cannot be specified in the wallpaper. Please check the information page | ||
6003 | 6003 Unsupported image file format. Please check the information page | ||
10001 Not available, because 20GB model (CECHB00) is not equipped with wireless LAN feature. | 10001 Not available, because 20GB model (CECHB00) is not equipped with wireless LAN feature. | ||
10002 | 10002 Please use a wire to connect the PlayStation®3 to the broadband network. | ||
10003 A system error has occurred. | 10003 A system error has occurred. | ||
10004 | 10004 Connection established. Please be patient. Channel 1 | ||
10005 | 10005 Connection established. Please be patient. Channel 6 | ||
10006 | 10006 Connection established. Please be patient. Channel 11 | ||
10007 | 10007 Connection established. Please be patient. Channel automatic | ||
10008 Not available in the sub-account that is limiting the use of chat. | 10008 Not available in the sub-account that is limiting the use of chat. Please use after receiving the permission of Administrator of a master account (such as parents) | ||
10009 Upon your use of ad-hoc party, you should be asked to agree to the Terms of Service. | 10009 Upon your use of ad-hoc party, you should be asked to agree to the Terms of Service. | ||
10010 You need to sign up to PlayStation®Network. | 10010 You need to sign up to PlayStation®Network. | ||
10011 | 10011 You are signed out from PlayStation®Network. Please sign in to enable connection. | ||
10012 | 10012 Location other than the lobby. | ||
30002 In order to start the ad-hoc party, System | 30002 In order to start the ad-hoc party, System Software update is required. | ||
30003 Ad-hoc party is not installed. Please download the ad-hoc party (free of charge) from PlayStation®Store. | 30003 Ad-hoc party is not installed. Please download the ad-hoc party (free of charge) from PlayStation®Store. | ||
30004 Ad-hoc party has been updated. If you play the PSP® (PlayStation®Portable) Remaster | 30004 Ad-hoc party has been updated. If you play the PSP® (PlayStation®Portable) Remaster, restart from the PSP® (PlayStation®Portable) Remaster icon. | ||
30005 You | 30005 You cannot connect to PlayStation®Network. Please check the configuration. | ||
30006 Are you sure that you want to move to the ad-hoc party? Please check the save data. | 30006 Are you sure that you want to move to the ad-hoc party? Please check the save data. | ||
30007 | 30007 You are going to leave the room. | ||
30008 | 30008 You left the room. | ||
30009 You | 30009 You cannot connect to the network. Please check information page. | ||
30010 Room | 30010 Room password is incorrect. | ||
30011 This room is taking entry limit. | 30011 This room is taking entry limit. | ||
30012 This room can not enter because of the packed. | 30012 This room can not enter because of the packed. | ||
30013 | 30013 You are going to leave the room. | ||
30014 Are you sure that you want to leave the room? Data when you leave the room not been saved will be lost. | 30014 Are you sure that you want to leave the room? Data when you leave the room not been saved will be lost. | ||
30015 Are you sure that you want to leave the room? | 30015 Are you sure that you want to leave the room? | ||
30016 Are you sure that you want to move to end the game to the ad-hoc party? What you do not save will be lost. | 30016 Are you sure that you want to move to end the game to the ad-hoc party? What you do not save will be lost. | ||
30017 | 30017 You have not been put in a room. | ||
30018 This PSP®Remaster title in eight room is not supported. | 30018 This PSP®Remaster title in eight room is not supported. | ||
30019 You | 30019 You cannot connect to PlayStation®Network. Please check the information page. | ||
30020 | 30020 You are going to leave the room. Are you sure that you want to move to the ad-hoc party without saving the game? | ||
30021 The selected lobby is packed. | 30021 The selected lobby is packed. | ||
H8001 | H8001 Connection failed. | ||
H8002 | H8002 Connection failed. | ||
H8003 | H8003 Connection failed. | ||
H8004 | H8004 Connection failed. | ||
H8005 | H8005 Connection failed. | ||
H8006 | H8006 Connection failed. | ||
S7001 | S7001 Connection failed. | ||
S7002 | S7002 Connection failed. | ||
S7003 | S7003 Connection failed. | ||
S7004 | S7004 You are going to leave the room. | ||
</pre> | |||
<pre> | |||
= PSP Emulator patches = | |||
These patches are intended to be applied to the official PSP emulator of the PS3. | |||
= Patch to redirect unsupported commands (experimental) = | |||
This ugly and highly experimental PoC code simply redirects unsupported commands to 0x01010005 (Seek Begin) and probably breaks other commands. | |||
{{boxcode|float=left|width=50%|title=Original|code=<syntaxhighlight lang="asm"> | |||
=== | |||
<syntaxhighlight lang="asm"> | |||
00000000000285B0 | 00000000000285B0 | ||
00000000000285B0 empty_buffer: # CODE XREF: sceIoIoctlAsync+74�j | 00000000000285B0 empty_buffer: # CODE XREF: sceIoIoctlAsync+74�j | ||
Line 1,858: | Line 102: | ||
00000000000285F4 loc_285F4: # CODE XREF: sceIoIoctlAsync+B4�j | 00000000000285F4 loc_285F4: # CODE XREF: sceIoIoctlAsync+B4�j | ||
00000000000285F4 stw r31, 8(r30) # return value | 00000000000285F4 stw r31, 8(r30) # return value | ||
</syntaxhighlight> | </syntaxhighlight>}} | ||
{{boxcode|float=right|width=50%|title=Patched|code=<syntaxhighlight lang="asm"> | |||
00000000000285B0 | |||
00000000000285B0 loc_285B0: # CODE XREF: sceIoIoctlAsync+74�j | |||
00000000000285B0 # sceIoIoctlAsync+140�j ... | |||
00000000000285B0 bl _sys_libc_malloc | |||
00000000000285B4 clrldi r26, r3, 32 | |||
00000000000285B8 lis r28, 0x101 # 0x1010005 # Seek cmd id | |||
00000000000285BC ori r28, r28, 5 # 0x1010005 | |||
00000000000285C0 b loc_28724 | |||
00000000000285C4 # --------------------------------------------------------------------------- | |||
00000000000285C4 | |||
00000000000285C4 loc_285C4: # CODE XREF: sceIoIoctlAsync+184�j # | |||
00000000000285C4 # sceIoIoctlAsync+2D0�j # Both branches also modified, so we can use 5x4 bytes | |||
00000000000285C4 clrldi r7, r23, 32 | |||
00000000000285C8 extsw r3, r24 | |||
00000000000285CC extsw r4, r28 | |||
00000000000285D0 mr r6, r27 | |||
00000000000285D4 clrldi r8, r25, 32 | |||
00000000000285D8 mr r5, r29 | |||
00000000000285DC bl _IoFileMgrForUser_822ADD32 | |||
00000000000285E0 ld r2, 0xC0+var_98(r1) | |||
00000000000285E4 mr r31, r3 | |||
00000000000285E8 mr r3, r29 | |||
00000000000285EC bl _sys_libc_free | |||
00000000000285F0 ld r2, 0xC0+var_98(r1) | |||
00000000000285F4 stw r31, 8(r30) | |||
</syntaxhighlight>}}{{clear}} | |||
Supported | Unsupported command ID's will be replaced with empty buffers and simply sent through IoIoctl.<br> | ||
PGD = ID 0x04100001 | |||
Supported command ID's: | |||
0x1010005 (UMD file seek set) | 0x1010005 (UMD file seek set) | ||
0x1010009 | 0x1010009 | ||
Line 1,905: | Line 146: | ||
0x1F30003 (UMD disc read sectors operation) | 0x1F30003 (UMD disc read sectors operation) | ||
*Reference help: | |||
https://raw.githubusercontent.com/hrydgard/ppsspp/master/Core/HLE/sceIo.cpp | **https://raw.githubusercontent.com/hrydgard/ppsspp/master/Core/HLE/sceIo.cpp | ||
**https://code.google.com/p/jpcsp/source/browse/trunk/src/jpcsp/HLE/modules150/IoFileMgrForUser.java | |||
https://code.google.com/p/jpcsp/source/browse/trunk/src/jpcsp/HLE/modules150/IoFileMgrForUser.java | |||
<pre> | <pre> | ||
Line 1,926: | Line 166: | ||
0x04100010 - Get PGD data size | 0x04100010 - Get PGD data size | ||
</pre> | </pre> | ||
Latest revision as of 00:42, 19 January 2025
PSP emulator_api ad hoc play connection errors[edit source]
Translations from Japanese error messages:
0002 This channel did not have any room playing the same game 1005 Upon your use of this application, you will need to agree to the Terms of Use 2001 Network connection has expired. You will return to the title screen 2002 Network connection has expired. You will return to the title screen 2007 You cannot connect to ad hoc. Please check the information page 3001 You cannot connect to the network. Please check the information page 3003 There is no possible connection server 4001 You cannot connect to the network. Please check information page 4001 You cannot connect to the network. Please check information page 4004 You have exceeded the number of created rooms 4005 You have exceeded the maximum number of bookmarks. Please register again by removing unnecessary bookmark 4006 The lobby is a registered 4007 You will return to the title screen because no operation has been performed for a certain period of time 5002 This room is taking entry limit 5005 Because the connection type of network is different, you cannot play in this room. Please check the manual 5006 Transmission of comments 6001 You cannot change the wallpaper as the HDD free capacity is insufficient. To make the change of wallpaper you need free space of more than 17MB. 6002 The size of the image cannot be specified in the wallpaper. Please check the information page 6003 Unsupported image file format. Please check the information page 10001 Not available, because 20GB model (CECHB00) is not equipped with wireless LAN feature. 10002 Please use a wire to connect the PlayStation®3 to the broadband network. 10003 A system error has occurred. 10004 Connection established. Please be patient. Channel 1 10005 Connection established. Please be patient. Channel 6 10006 Connection established. Please be patient. Channel 11 10007 Connection established. Please be patient. Channel automatic 10008 Not available in the sub-account that is limiting the use of chat. Please use after receiving the permission of Administrator of a master account (such as parents) 10009 Upon your use of ad-hoc party, you should be asked to agree to the Terms of Service. 10010 You need to sign up to PlayStation®Network. 10011 You are signed out from PlayStation®Network. Please sign in to enable connection. 10012 Location other than the lobby. 30002 In order to start the ad-hoc party, System Software update is required. 30003 Ad-hoc party is not installed. Please download the ad-hoc party (free of charge) from PlayStation®Store. 30004 Ad-hoc party has been updated. If you play the PSP® (PlayStation®Portable) Remaster, restart from the PSP® (PlayStation®Portable) Remaster icon. 30005 You cannot connect to PlayStation®Network. Please check the configuration. 30006 Are you sure that you want to move to the ad-hoc party? Please check the save data. 30007 You are going to leave the room. 30008 You left the room. 30009 You cannot connect to the network. Please check information page. 30010 Room password is incorrect. 30011 This room is taking entry limit. 30012 This room can not enter because of the packed. 30013 You are going to leave the room. 30014 Are you sure that you want to leave the room? Data when you leave the room not been saved will be lost. 30015 Are you sure that you want to leave the room? 30016 Are you sure that you want to move to end the game to the ad-hoc party? What you do not save will be lost. 30017 You have not been put in a room. 30018 This PSP®Remaster title in eight room is not supported. 30019 You cannot connect to PlayStation®Network. Please check the information page. 30020 You are going to leave the room. Are you sure that you want to move to the ad-hoc party without saving the game? 30021 The selected lobby is packed. H8001 Connection failed. H8002 Connection failed. H8003 Connection failed. H8004 Connection failed. H8005 Connection failed. H8006 Connection failed. S7001 Connection failed. S7002 Connection failed. S7003 Connection failed. S7004 You are going to leave the room.
PSP Emulator patches[edit source]
These patches are intended to be applied to the official PSP emulator of the PS3.
Patch to redirect unsupported commands (experimental)[edit source]
This ugly and highly experimental PoC code simply redirects unsupported commands to 0x01010005 (Seek Begin) and probably breaks other commands.
Original
![Edit-copy purple.svg.png](/ps3/images/thumb/0/03/Edit-copy_purple.svg.png/25px-Edit-copy_purple.svg.png)
00000000000285B0 00000000000285B0 empty_buffer: # CODE XREF: sceIoIoctlAsync+74�j 00000000000285B0 # sceIofileAsync+140�j ... 00000000000285B0 li r31, 0 00000000000285B4 clrldi r27, r3, 32 00000000000285B8 li r29, 0 00000000000285BC cmpwi cr4, r31, 0 00000000000285C0 00000000000285C0 IoFileMgrForUser_822ADD32: # CODE XREF: sceIoIoctlAsync+184�j 00000000000285C0 # sceIofileAsync+2D0�j 00000000000285C0 clrldi r7, r23, 32 # out data ptr 00000000000285C4 extsw r3, r24 # id 00000000000285C8 extsw r4, r28 # cmd 00000000000285CC mr r6, r27 # in size 00000000000285D0 clrldi r8, r25, 32 # out len 00000000000285D4 mr r5, r29 # in data ptr 00000000000285D8 bl _IoFileMgrForUser_822ADD32 # pspFileSystem.... ? 00000000000285DC ld r2, 0xC0+var_98(r1) 00000000000285E0 mr r31, r3 00000000000285E4 beq cr4, loc_285F4 # nop 00000000000285E8 mr r3, r29 00000000000285EC bl _sys_libc_free 00000000000285F0 ld r2, 0xC0+var_98(r1) 00000000000285F4 00000000000285F4 loc_285F4: # CODE XREF: sceIoIoctlAsync+B4�j 00000000000285F4 stw r31, 8(r30) # return value
Patched
![Edit-copy purple.svg.png](/ps3/images/thumb/0/03/Edit-copy_purple.svg.png/25px-Edit-copy_purple.svg.png)
00000000000285B0 00000000000285B0 loc_285B0: # CODE XREF: sceIoIoctlAsync+74�j 00000000000285B0 # sceIoIoctlAsync+140�j ... 00000000000285B0 bl _sys_libc_malloc 00000000000285B4 clrldi r26, r3, 32 00000000000285B8 lis r28, 0x101 # 0x1010005 # Seek cmd id 00000000000285BC ori r28, r28, 5 # 0x1010005 00000000000285C0 b loc_28724 00000000000285C4 # --------------------------------------------------------------------------- 00000000000285C4 00000000000285C4 loc_285C4: # CODE XREF: sceIoIoctlAsync+184�j # 00000000000285C4 # sceIoIoctlAsync+2D0�j # Both branches also modified, so we can use 5x4 bytes 00000000000285C4 clrldi r7, r23, 32 00000000000285C8 extsw r3, r24 00000000000285CC extsw r4, r28 00000000000285D0 mr r6, r27 00000000000285D4 clrldi r8, r25, 32 00000000000285D8 mr r5, r29 00000000000285DC bl _IoFileMgrForUser_822ADD32 00000000000285E0 ld r2, 0xC0+var_98(r1) 00000000000285E4 mr r31, r3 00000000000285E8 mr r3, r29 00000000000285EC bl _sys_libc_free 00000000000285F0 ld r2, 0xC0+var_98(r1) 00000000000285F4 stw r31, 8(r30)
Unsupported command ID's will be replaced with empty buffers and simply sent through IoIoctl.
PGD = ID 0x04100001
Supported command ID's:
0x1010005 (UMD file seek set) 0x1010009 0x101000A (0x1020006) (0x1020007) 0x1030008 (Read UMD file) (0x1D20002) 0x1F100A6 (UMD file seek whence) 0x1F30003 (UMD disc read sectors operation)
- Reference help:
0x01020001 - Get UMD Primary Volume Descriptor 0x01020002 - Get UMD Path Table 0x01020003 - Get UMD sector size 0x01020004 - Get UMD file pointer 0x01010005 - Set UMD file seek 0x01020006 - Get UMD file start sector 0x01020007 - Get UMD file length in bytes 0x01030008 - Read UMD file 0x01D20001 - Get UMD device file current sector seek position 0x01F30003 - Read raw sectors from UMD device file 0x01F100A6 - Set UMD device file seek by sector 0x04100001 - Define decryption key (DRM by amctrl.prx) 0x04100002 - Set PGD offset 0x04100010 - Get PGD data size