webMAN-MOD
webMAN-MOD copied to clipboard
ps3netsrv: 80010017 error
I compiled ps3netsrv following the instructions:
$ meson buildrelease --buildtype=release
The Meson build system
Version: 1.0.1
Source dir: /home/user/ps3netsrv
Build dir: /home/user/ps3netsrv/buildrelease
Build type: native build
Project name: ps3netsrv
Project version: 0.1
C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0")
C linker for the host machine: cc ld.bfd 2.40
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Debian 12.2.0-14) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Run-time dependency threads found: YES
Library mbedtls found: YES
Library mbedcrypto found: YES
Build targets in project: 1
ps3netsrv 0.1
User defined options
buildtype: release
Found ninja-1.11.1 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
$ ninja -C buildrelease
ninja: Entering directory `buildrelease'
[6/6] Linking target ps3netsrv
And ran it with INI-files pointing to a directory containing .iso/.dkey files.
// PS3ISO.INI
/path/to/Sony - PlayStation 3/
My directory structure:
/path/to/ini/files/
- PSXISO.INI
- PS2ISO.INI
- PS3ISO.INI
- REDKEY/game.key
/path/to/Sony - PlayStation 3/
- game.iso
- game.dkey
I configured webmanMod accordingly and scanned successfully the isos. Mounting worked and even the trailed/music is playing in the game list. But when starting the game I get an 80010017 error. The ps3netsrv output gives no indication what could have gone wrong:
$ buildrelease/ps3netsrv /path/to/ini/files/
ps3netsrv build 20250216 (mod by aldostools)
Path: /path/to/ini/files/
Host IP #1: 192.168.0.10:38008
Host IP #2: 10.0.3.1:38008
Host IP #3: 172.17.0.1:38008
Waiting for client...
[0] Connection from 192.168.0.11
open /Sony - PlayStation 3/game.iso
Remarks:
- I am working on a odroid c2 (arm64) with dietpi os (debian bullseye).
- I also tried the Make.sh build before with the same outcome.
- I also tried providing the .key (binary) file for the given .iso (same name) in a secondary directory REDKEY/.
The ISO must be stored in /PS3ISO. The decryption file must exist in the same folder of the ISO with the exact file name but the file extension changed to .dkey or .key. Alternatively the keys can be stored to /REDKEY (the path "PS3ISO" is replaced by "REDKEY" for the lookup).
The error 80010017 is because the USRDIR is encrypted abd the EBOOT.BIN is corrupted due the decryption key is not found. I recommend that decrypt the ISO files before use them through ps3netsrv.
But shouldn't this setup work?
/path/to/ini/files/
- PS3ISO.INI
- REDKEY/game.key
/path/to/Sony - PlayStation 3/
- game.iso
- game.dkey
$ buildrelease/ps3netsrv /path/to/ini/files/
no.
ps3netsrv supports realtime decryption of 3k3y/redump PS3 isos. The Redump ISO must have to be in the "PS3ISO" folder and Redump .key or .dkey files have to be in the same folder of the PS3 ISO or in the "REDKEY" folder (with same name as the corresponding encrypted redump iso).
https://github.com/aldostools/webMAN-MOD/wiki/~-PS3-NET-Server#3k3yredump-support
examples: /PS3ISO/mgs.iso /REDKEY/mgs.dkey
/PS3ISO/gt5.iso /PS3ISO/gt5.dkey
/PS3ISO.INI (containing a list of directory paths to be listed as part of /PS3ISO)
I dont understand the purpose of PS3ISO.INI then.
My PS3ISO.INI contains the path to all iso+dkey files. If the iso files have to be in PS3ISO/ path, the PS3ISO.INI is useless.
The PS3ISO.INI must contain only paths to other directories, not path to files.
The directories included in the .INI file will be treated as if they were stored in /PS3ISO
This feature was not created with .dkey in mind. Reviewing the code in theory it should work, but I recommend to decrypt the ISO if you plan to use the PS3ISO.INI
I understood, that the INI allows to store the files in directories, that are not forced to be called PS3ISO.
So you store all your files in directories like e.g. Redump-names: Redump/Sony - PlayStation Redump/Sony - PlayStation 2 Redump/Sony - PlayStation 3
And with the INI-files you map them to PSXISO, PS2ISO and PS3ISO.
That works fine for the iso-files (they are recognized), but the (d)key files are not :-(
I prefer not to alter my directory names and also to leave the isos original / untouched. I remember, that the docker allowed to do so.
The "REDKEY" assumes the path of the game contains the word "PS3ISO" or "ps3iso", so it is replaced with "REDKEY". As the real path "Redump/Sony - PlayStation" does not contain the expected word, the decryption key is not found.
Try putting the .dkey in the same folder of the ISO. It probably will work with /PS3ISO.INI
The "REDKEY" assumes the path of the game contains the word "PS3ISO" or "ps3iso", so it is replaced with "REDKEY". As the real path "Redump/Sony - PlayStation" does not contain the expected word, the decryption key is not found.
Try putting the .dkey in the same folder of the ISO. It probably will work with /PS3ISO.INI
No it doesn't, because that is already the case.
I just noticed the cause. The path of the ISO is expected to contain the word PS3ISO as part of the path. If it doesn't the decryption code is skipped. BTW this part of the code was writted by NvrBst. I only merged the code to the project. https://github.com/aldostools/ps3netsrv/blob/master/src/File.cpp#L113
As your linked path is "Redump/Sony - PlayStation 3" instead of "Redump/PS3ISO" the decryption key is not processed.
@jagiella @aldostools is this still a thing to fix?
Yes of cause. In my opinion, the paths listed in the INI-files should be treated identically as the respective directories itself.
For example the following 3 setups should lead to the same behaviour:
- Standard path
/root/dir/
- PS3ISO/
- game.iso
- game.dkey
- game_A.iso
- game_A.dkey
- game_Z.iso
- game_Z.dkey
- INI-file
/root/dir/
- PS3ISO.ini (contains /root/dir/PS3ISO_A-M/ and /root/dir/PS3ISO_N-Z/)
- PS3ISO_A-M/
- game.iso
- game.dkey
- game_A.iso
- game_A.dkey
- PS3ISO_N-Z/
- game_Z.iso
- game_Z.dkey
- standard path extended by INI-file
/root/dir/
- PS3ISO.ini (contains /root/dir/PS3ISO_A-M/ and /root/dir/PS3ISO_N-Z/)
- PS3ISO/
- game.iso
- game.dkey
- PS3ISO_A-M/
- game_A.iso
- game_A.dkey
- PS3ISO_N-Z/
- game_Z.iso
- game_Z.dkey
Have you tried the latest build of ps3netsrv? I did some tests on Windows and it seems to work for the examples above.
However the file name of PS3ISO.INI needs to have all letters in uppercase on file systems that are case sensitive (e.g. linux).