[Hotfix] Fixed a bug that normal games couldn't boot properly after VSH booted #13980
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The bug in unself.cpp's
decrypt_self()
wasn't causing actual problems before #13840 becauseg_ps3_process_info.self_info.prog_id_hdr
wasn't really used to determine the type of the SELF being executed (e.g.Emu.IsVsh()
didn't use it).After #13840, the emulator determines whether the SELF is VSH (or other userspace CoreOS LV2 SELFs) by checking its Program Auth ID in
g_ps3_process_info.self_info.prog_id_hdr
, so the bug in unself.cpp'sdecrypt_self()
prevents SELFs or games executed after VSH from accessing the necessary sprx modules (check out https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/Cell/PPUModule.cpp#L2111).