aldostools / webMAN-MOD

Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.)
https://aldostools.github.io/webMAN-MOD/
GNU General Public License v3.0
1.32k stars 175 forks source link

Improving PSN-to-ISO games. #597

Open ghost opened 2 years ago

ghost commented 2 years ago

Would it be possible to detect these type of games (with a "PSN" tag on the filename or similar), and automatically remap /dev_hdd0/game/[GAME_ID] to avoid errors due to hard-coded absolute paths? It would avoid having to manually patch it in the EBOOT.BIN (which could cause errors due to the different lengths of the paths).

As an aside, would it be possible to modify ps3netsrv to accept PSN games packed as ISOs (just to avoid storing loose files for each game).

aldostools commented 2 years ago

Extract webftp_server.zip and copy the extracted sprx to /dev_hdd0/plugins/webftp_server.sprx Reboot after copy.

This test build maps /dev_hdd0/game/[GAME_ID] to /dev_bdvd/PS3_GAME if the folder does not exist and the file name of the ISO contains the tag [PSN] (including the square brackets).

Please test and come back with your results.

ghost commented 2 years ago

I'll test as soon as I can. Unfortunately, I won't have a PS3 to test it on for about a month.

If anyone steps up to test the feature sooner than me, I know that "Dead Space: Extraction" contains a hard coded path to its game folder (See "PSN - Liberator" discussion thread on PSX-Place; Sandungas patched the game manually to get it to work properly).

MusterGit commented 2 years ago

Great feature! I would love to try it out. @rhynec Could you tell me how you manage to convert pkg+rap into an iso? All my tries with PSN Liberator failed so far. I configure the two paths (path to pkg file and path to the folder of the rap file) via the GUI. I even put an ipds file and an act.dat file in the Tools/exdata folder. But the process always stops with "Couldn't resign EBOOT.BIN". What am I missing?

aldostools commented 2 years ago

I usually convert manually my PSN games to ISO doing this procedure:

  1. Create a new folder. Then create a sub-folder named PS3_GAME
  2. Move the extracted PKG directory (containing PARAM.SFO, ICON0.PNG, USRDIR, etc.) inside PS3_GAME
  3. Open PARAM.SFO and change the category HG to DG
  4. Extract ELF from EBOOT.BIN and all .SELF, .SPRX
  5. Resign EBOOT.BIN and all .SELF, .SPRX as retail (I use PS3 Tools Collection or TrueAncestor Self Resigner)
  6. Build the ISO using genPS3ISO or PS3 ISO Tools by Rudi Rastelli

If the PSN contains edats, the conversion is more complex due they must be converted to sdat.

For a proper conversion the ISO requires PS3_DISC.SFB and LICDIR\LIC.DAT, but CFW lets to play PS3 games without these files.

If you find this procedure too difficult, use: https://www.psx-place.com/resources/psn-liberator.869/

MusterGit commented 2 years ago
0. Create a new folder. Then create a sub-folder named PS3_GAME

Done

1. Move the extracted PKG directory (containing PARAM.SFO, ICON0.PNG, USRDIR, etc.) inside PS3_GAME

Done

2. Open PARAM.SFO and change the category HG to DG

Done

3. Extract ELF from EBOOT.BIN and all *.SELF, *.SPRX

I am trying with Daytona USA (NPEB00630) using PS3 Tools Collection. So I open EBOOT.BIN with Scetool GUI, put the rap file in the RAPS folder and decrypt it. An EBOOT.BIN.elf is created, which I rename to EBOOT.ELF.

4. Resign EBOOT.BIN and all *.SELF, *.SPRX as retail (I use PS3 Tools Collection or TrueAncestor Self Resigner)

I then use TrueAncestor to resign the EBOOT.ELF. Option: Resign to NON-DRM EBOOT. An EBOOT.BIN is created. I move it to the USRDIR folder and overwrite the original.

If the PSN contains edats, the conversion is more complex due they must be converted to sdat.

Daytona USA has a chkboot.edat. Only ESSSE Resigner seems to work and output a resigned chkboot.edat, which I again move to the USRDIR folder.

5. Build the ISO using genPS3ISO or PS3 ISO Tools by Rudi Rastelli

Done using PS3 ISO Tools. The name of the ISO contains [PSN] tag, but the game does not start (the typical error that ends with 9).

If you find this procedure too difficult, use: https://www.psx-place.com/resources/psn-liberator.869/

As I already said in my previous post, PSN Liberator always gives me a bunch of success messages in the log, but the last entry is Couldn't resign EBOOT.BIN and the process is cancelled.

Here my test files: DAYTONA_TEST.zip

UPDATE: It's working now. I guess it was a hard link on my NAS that still referenced an old node. Renamed the source file and redid the link.

aldostools commented 2 years ago

UPDATE: It's working now. I guess it was a hard link on my NAS that still referenced an old node. Renamed the source file and redid the link.

👍