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

SF3: Online Edition - NPUB30301 - Error Decrypting data #3841

Closed
buvk opened this issue Dec 3, 2017 · 24 comments
Closed

SF3: Online Edition - NPUB30301 - Error Decrypting data #3841

buvk opened this issue Dec 3, 2017 · 24 comments

Comments

@buvk
Copy link

buvk commented Dec 3, 2017

With all the DLC installed, the game occasionally hangs after pressing start to get to the main menu after launching the game.

The following message is repeated in the log console.

E {PPU[0x1000001] Thread (AsyncLoad) [0x00d70174]} LDR: EDAT: Block at offset 0x120 has invalid hash!
E {PPU[0x1000001] Thread (AsyncLoad) [0x00d70174]} LDR: Error Decrypting data

This doesn't happen all the time; sometimes you can get to the main menu. If you are able to progress past this part, you can replicate the issue by pressing back to go back to the title screen, then pressing start again.

Screenshot of where the issue occurs (pressing start here is what occasionally causes the game to hang):
screen

Version: RPCS3 v0.0.4-6195-3fbc960c Alpha | HEAD
Specs: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz | 8 Threads | 15.94 GiB RAM | AVX+ | GeForce GTX 980
log.zip

@ThanksLori
Copy link

ThanksLori commented Dec 3, 2017

Yeah, I'm getting this error on Jojo's Bizarre Adventure: All-Star Battle on both BLUS31405 and NPEB01922, the problem seemed to be the DLC as well, it works perfectly fine one moment, then freezes, and is stuck on "Checking the installed downloadable content..." while repeatedly giving the error:
E {PPU[0x1000008] Thread (CRI FS File Access 1) [0x014b4174]} LDR: Error Decrypting data
E {PPU[0x1000008] Thread (CRI FS File Access 1) [0x014b4174]} LDR: EDAT: Block at offset 0x120 has invalid hash!

fo1xycn

even after I close the game it keeps on repeating it forever

Sometimes, you can get by to the main menu and play but it happens occasionally and I don't know how to stop it.

RPCS3 v0.0.4-6200-8f314c51 Alpha | HEAD
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz | 8 Threads | 7.86 GiB RAM | AVX+ | TSX | NVIDIA Geforce GTX 960M

RPCS3.log.gz

@xperia64
Copy link
Contributor

I also still experience this issue in Jojo w/DLC installed.

It really seems to be some sort of race condition given how unpredictable it is. On my current i7 system, I haven't been able to get it to go past this screen using PPU LLVM&SPU ASMJIT in quite some time. I just got it to boot past this screen once by setting both to fast interpreter, though it's still really hit or miss. Even the precise interpreters don't seem to get past this screen often.

On a Ryzen 1800x system (that I currently don't have access to), it's been a bit more forgiving getting past this screen, and applying extra CPU load at times, such as clearing the shader cache and forcing a fresh compilation, sometimes seems to help increase the odds of actually entering the game.

The "Error Decrypting data" log entry does not repeat forever, it's just logged so frequently that it can take a few minutes after the game is closed to flush entirely. GPU and renderer selection seem to make no difference in boot reliability.

RPCS3 v0.0.5-6847-2bfafe4b0 Alpha | HEAD
Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz | 8 Threads | 31.96 GiB RAM | AVX+ | TSX
RPCS3-Jojo-7700k.log.gz

@HerrHulaHoop
Copy link

Both JoJo logs have missing license (rap) files for DLCs. That could very well be the cause of the crashes and would be unrelated to the original issue.

@xperia64
Copy link
Contributor

Implicitly the DLC would've never worked if RAP files were actually needed in this case. It would've been impossible for the emulator to decrypt them. The problem is it does sometimes work. The provided EDATs should suffice.

Can you verify the status of the game if RAP files are used?

@HerrHulaHoop
Copy link

HerrHulaHoop commented Mar 24, 2019

The original SF3 issue is fixed. I have all DLCs installed + game update and haven't encountered any crashes anywhere. Went past the title screen about 20 times. No crashes.

Screenshot (69)

Attaching the log of going past title screen multiple times. No decryption error is present.
RPCS3.log.gz

@xperia64
Copy link
Contributor

Same game installation as before, evidently RPCS3 is capable of booting the game with the DLC installed as is (note the added character slots at the bottom of the roster):
image

This particular run that worked was with no previously saved data. The second run immediately after that produced the same error as before.
Logs attached.
RPCS3.JoJo.broken.log.gz
RPCS3.JoJo.working.log.gz

@buvk
Copy link
Author

buvk commented Mar 24, 2019

The SF3 bug has not been fixed. I was able to replicate it just now using the latest version of RPCS3.

@HerrHulaHoop
Copy link

Post a new log. It works perfectly on my end.

@xperia64
Copy link
Contributor

All things considered, the DLC for JJBA ASB is somewhat useless at the moment as the DLC characters seem to require an internet connection to use even in offline mode. I could also see EDAT-based installs behaving differently than RAPs, with RAPs being preferable and working most or all of the time, but my primary concern is the fact that the behavior is so inconsistent and seemingly random.

@buvk
Copy link
Author

buvk commented Mar 24, 2019

New log attached.

RPCS3.log.gz

@HerrHulaHoop
Copy link

@buvk one of your license (rap) files don't seem to be correct. Please come over to our Discord server so that we can debug this better.

@buvk
Copy link
Author

buvk commented Mar 24, 2019

I have re-installed the pkg and rap files, and have also deleted all my cache. I tried to replicate the issue again, but have not been able to (have been testing for 10 mins or so).

@toccata10
Copy link
Contributor

Setting the affinity to core0 allows to get pass the problematic screen with
E {PPU[0x1000008] Thread (CRI FS File Access 1) [0x014b4174]} LDR: Error Decrypting data
E {PPU[0x1000008] Thread (CRI FS File Access 1) [0x014b4174]} LDR: EDAT: Block at offset 0x120 has invalid hash!

On linux, it's done with:
taskset -c 0 ./rpcs3-v0.0.6-8274-806a7bbf_linux64.AppImage &
On windows, it should be in the taskmanager.

@xperia64
Copy link
Contributor

Interesting. So that more or less confirms this as a race condition. I tried changing the number of SPU threads in RPCS3, but didn't think to try host core affinity.

@mosamadeeb
Copy link

@xperia64 @toccata10
As this issue isn't closed yet, I'll be free to post the solution that fixed JoJo ASB's dlc errors.

The game does ask for .rap files but the .rif files aren't even there on a console, so it shouldn't be doing this. Furthermore, the dlc that causes this issue is Campaign Data from 1 to 6 which are free updates added to the game, but are required to play online. The character keys are what you can buy from psn but even if they require a .rap, they still work without it.

The solution is by using the decrypted campaign files, so instead of data0100.edat you need to use data0100.dat (decrypted with TrueAncestor edat tool) but then renamed again back to "data0100.edat". Same is needed for data0200 through data0600.

This is confirmed working by multiple people, also if any discord mod sees this, can I post a link to the decrypted dlc if anyone needs it? It'll just be a custom .pkg with only the free campaign data; it includes nothing which can be purchased from psn.

@HerrHulaHoop
Copy link

Interesting. Will test this out. As for sharing the decrypted DLCs, absolutely not. Whether you can currently buy it on PSN is not relevant.

@buvk
Copy link
Author

buvk commented Aug 19, 2019

Just wanted to mention that I was able to replicate the issue again. I have not tried the fix mentioned above though.

@HerrHulaHoop
Copy link

The game does ask for .rap files but the .rif files aren't even there on a console, so it shouldn't be doing this. Furthermore, the dlc that causes this issue is Campaign Data from 1 to 6 which are free updates added to the game, but are required to play online.

Sometimes games ask for rap files but don't actually use it. The PSN version of Ni No Kuni comes to mind as an example. The log will still show that a rap file was requested and found to be missing but the game won't mind since it is the expected response. If we're certain no rif file is created for a DLC on real console, then we can safely ignore this error. I checked on the real console as well and can confirm that the Campaign Data does not create a rif file.

The character keys are what you can buy from psn but even if they require a .rap, they still work without it.

Highly doubt this, will check it myself when I get the chance.

The solution is by using the decrypted campaign files, so instead of data0100.edat you need to use data0100.dat (decrypted with TrueAncestor edat tool) but then renamed again back to "data0100.edat". Same is needed for data0200 through data0600.

Can confirm that this method does indeed work. So we probably need to figure out why RPCS3 fails to decrypt these files. That should solve the issue.

@HerrHulaHoop
Copy link

Just wanted to mention that I was able to replicate the issue again. I have not tried the fix mentioned above though.

Hmm, weirdly I'm able to replicate this issue as well now. Didn't happen for me before.

With v1.03 of SF3 installed, the game will reliably hang at title screen spamming:

{PPU[0x1000001] Thread (AsyncLoad) [0x00e91174]} LDR: EDAT: Block at offset 0x120 has invalid hash!
{PPU[0x1000001] Thread (AsyncLoad) [0x00e91174]} LDR: Error Decrypting data

Here's a log on v1.03 spamming the error.

With v1.00, the game goes ingame and all DLCs work. But every 1 in 10 times, the same error returns where the DLCs aren't recognised and the log is spammed with the above error. So it does seem to be some kind of race condition.

Attaching log of v1.00 as well for what it's worth. Took me a couple tries to get the error to trigger. Let me know if a log where everything works on v1.00 is required and I'll attach that as well.

@digitaldude555
Copy link

@buvk update

@Edszx
Copy link

Edszx commented Feb 28, 2020

This problem is still happening with version 0.0.8-9758-05bb6e15 Alpha
RPCS3.log.gz

@xperia64
Copy link
Contributor

So #8467 and #8469 appear to fix or at least workaround the case of JoJo where the game tries to use the set keys before they are fully loaded.

SF3 on the other hand is different. It has two PS3 threads which try to load files and set keys via npDrmIsAvailable. What happens is the two threads step on eachother, and can try to set keys at roughly the same time, before they open the files they set the keys for.

So I guess the question is, are these sceNpDrmIsAvailable and associated lv2 open calls globally locked or something? Or are there multiple key contexts, like one per thread or file handle?

@HerrHulaHoop
Copy link

Still occurs RPCS3.log.gz

@elad335
Copy link
Contributor

elad335 commented Oct 17, 2021

Test with #11013.

@AniLeo AniLeo closed this as completed Nov 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants