Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Software Manuals & Updates for ISOs in the XMB #458

Open
schm1dtmac opened this issue Jan 5, 2025 · 9 comments
Open

Allow Software Manuals & Updates for ISOs in the XMB #458

schm1dtmac opened this issue Jan 5, 2025 · 9 comments

Comments

@schm1dtmac
Copy link
Contributor

schm1dtmac commented Jan 5, 2025

New Feature

PSN EBOOTs support software manuals via loading DOCUMENT.DAT files located in the same folder as the EBOOT.PBP file, this could be supported similarly for ISOs by having the DOCUMENT.DAT be named the same as its corresponding ISO (e.g. if I had an ISO at ms0:/ISO/ULES00502.ISO, load ms0:/ISO/ULES00502.DAT for it's manual and so on).

Updating via XMB meanwhile, as noted in the title, is also supported for PSN EBOOTs and also for legitimate physical UMDs (afaik some older LME CFW may have supported this for ISO too) so it could also be possible to implement for ISOs. Both features mentioned in this issue are accessible via the triangle menu on the XMB when using the aforementioned official formats.

@isage
Copy link

isage commented Jan 5, 2025

For ISOs to support update/manuals, they should have category set to 'EG' in virtualsfo (Not sure how that would work for UMDs)
Manuals should technically work then too, when placed into ms0:/PSP/GAME/<DISC_ID>/

@schm1dtmac
Copy link
Contributor Author

schm1dtmac commented Jan 5, 2025

For ISOs to support update/manuals, they should have category set to 'EG' in virtualsfo (Not sure how that would work for UMDs) Manuals should technically work then too, when placed into ms0:/PSP/GAME/<DISC_ID>/

Had a quick look, actual UMDs should have category UG according to Redump, the hardcoded placeholder virtualSFO in vshctrl instead has category MG used by PSP updates, nor does the virtual_pbp code replace it with correct category data from the UMD SFO as with other entries (explains the lack of the Update option for ISOs).

@schm1dtmac
Copy link
Contributor Author

schm1dtmac commented Jan 5, 2025

@isage's fix worked great for updates at least, changing the hardcoded category to EG enabled functional updates for LBP's ISO version in my tests. Software manuals don't work though despite the option now showing, regardless of wherever i put them (did try some very creative locations) they don't get detected and an error shows instead, plus changing the category appears to break the ability to actually load the ISO when testing with VCS and LBP ISOs.

@isage
Copy link

isage commented Jan 5, 2025

Checked logs (in adrenaline, though), and seems like with ISO it tries to open iso itself, instead of DOCUMENT.DAT

nvm, it actually tries to open ms0:/PSP/GAME/MMMMMISO<num>/DOCUMENT.DAT (this is on adrenaline, ARK seems to use different naming scheme for that), which redirects to virtualpbp_open, which, obviously, fails, because there's no such file inside iso (or, rather, because it expects to only fake EBOOT.PBP)

@isage
Copy link

isage commented Jan 5, 2025

Then there's also an issue with DOCUMENT.DAT (from EBOOT-format games) being encrypted
(although, maybe stargate circumvents this properly, npdrm_free doesn't seem to)

@JoseAaronLopezGarcia
Copy link
Contributor

Then there's also an issue with DOCUMENT.DAT (from EBOOT-format games) being encrypted (although, maybe stargate circumvents this properly, npdrm_free doesn't seem to)

Stargate does't really meddle with NPDRM stuff, it's for anti-CFW DRM on games themselves (i.e. real physical UMD games that have anti-CFW protection).

Checked logs (in adrenaline, though), and seems like with ISO it tries to open iso itself, instead of DOCUMENT.DAT

nvm, it actually tries to open ms0:/PSP/GAME/MMMMMISO<num>/DOCUMENT.DAT (this is on adrenaline, ARK seems to use different naming scheme for that), which redirects to virtualpbp_open, which, obviously, fails, because there's no such file inside iso (or, rather, because it expects to only fake EBOOT.PBP)

This makes sense, it's the reason why I had to manually implement update/dlc detection myself instead of doing changing the category.

@schm1dtmac
Copy link
Contributor Author

schm1dtmac commented Jan 6, 2025

Then there's also an issue with DOCUMENT.DAT (from EBOOT-format games) being encrypted (although, maybe stargate circumvents this properly, npdrm_free doesn't seem to)

I don’t think DOCUMENT.DAT has any special protection beyond maybe fixed-key protection that would work fine on OFW. Tested it myself, the manuals load fine on OFW even without corresponding NPDRM license files and whatnot.

@isage
Copy link

isage commented Jan 6, 2025

I don’t think DOCUMENT.DAT has any special protection beyond maybe fixed-key protection that would work fine on OFW. Tested it myself, the manuals load fine on OFW even without corresponding NPDRM license files and whatnot.

Mkay, for that to work, vpbp should report that DOCINFO.EDAT doesn't exist in patched sceIoGetstat (otherwise game_plugin.prx tries to read it and fails)

And for DOCUMENT.DAT, both sceIoOpen and sceIoGetstat should redirect to actual file instead of doing vpbp_open/stat

@isage
Copy link

isage commented Jan 6, 2025

Implemented it (somewhat hackish way) in adrenaline, might help Acid doing this in ARK
isage/Adrenaline@5130872

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Todo
Development

No branches or pull requests

3 participants