Mute wrong log on edat #19502

Open
digant73 opened 3:23pm on September 15, 2026 wants to merge 85 Ξ” into rpcs3/rpcs3 master from
mute_wrong_log_on_edat

Pull Request Overview

  • Opened on September 15, 2026
  • Status Open
  • Commit count 5 with first commit September 15, 2026

Total Delta

85 Total Diff Delta

Open Days

Open 4 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Fraction of total time Business days Phase
N/A 201.0 days Issue creation to work beginning
 
0.2 days Authoring 3 commits before pull request opened for review
 
0.1 days Awaiting first review
 
3.3 days Revising work with 2 commits in response to 0 reviews that left 1 comment

Total time for pull request still awaiting merge: 3.6 business days

Author avatar

Mute wrong log on edat

As already identified by Elad in #17843, fix a wrong spamming of error logs when a game opens an EDAT.
sys_fs tries the klicensees registered through sceNpDrmIsAvailable until one fits. Each candidate that does not fit logs three error-level lines.
On ticket #17843, there were 68 misses for a total of 204 error lines while at the end no real error on .edat was present.

A simple fix consists on logging only one error message at the end of the main loop where candidates are tested in case all of them failed.

Furthermore:
- if validate_npd_hashes fails, proceed with the right handling (returning true if decryption will succeed) instead of returning true even if decryption will fail
- return false if no RAP file is found and needed

closes #17843

This work implements EDAT Decryption Failure - BLJS10154 (open)

Quick summary

RPCS3's log reports multiple EDAT decryption failures for perfectly fine EDAT files in BLJS10154.
The necessary raps are all installed.
They are the original files from the game.
They are from DLC for the game.

Programs like TrueAncestor EDAT Rebuilder and make_npdata-hykem are able to successfully decrypt these EDAT files as well.

Details

RPCS3 reported failing to decrypt several EDAT files for the game BLJS10154.
One such file is this:
/dev_hdd0/game/BLJS10154/USRDIR/menu/mobilesuit/c01_064_00/license.edat

The log reports:
"EDAT: Block at offset 0x120 has invalid hash!"
"Error Decrypting data"
"EDAT: NPDRM ReadData() failed!"

This indicates RPCS3 has failed to validate the hash included in the metadata of the very first block of the file (Usually the only one anyhow though). This happens the same way several times.

However, these files are perfectly fine according to make_npdata-hykem and TrueAncestor EDAT Rebuilder is able to decrypt it. I am also personally able to confirm the contents of the decrypted data were valid.

My guess is a minor oversight may have occurred in the decryption process, maybe around the metadata of the block, or possibly the block itself wasn't decrypted right, or both. The flags in EDAT can be very tricky to figure out. I made my own C# library for EDAT files guided by make_npdata-hykem and it was quite a hassle to put it together at first.

Attach a log file

RPCS3.log.gz

Attach capture files for visual issues

No response

System configuration

OS: Windows 10 Pro 22H2 (19045.6575) CPU: AMD Ryzen 7 5700G
GPU: NVIDIA RTX 3070 Ti 8GB (driver 572.70.0.0) RAM: 16GBx2 3600Mhz

Other details

No response

Comments Threads Pending Resolution

Resolved Comment Threads

No resolved comments have been left on this PR.