-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
DLC unrecognized after CNMT lookup failure, fallback infers incorrect base title_id #97
Comments
Thank you very much for your investigations and providing the fix! I couldn't figure it out and always was wondering how to get the correct Title ID. I implemented the fix in the develop branch, the new version can be tested by pulling the |
Thanks for the feedback. I just noticed and fixed an issue where |
The DLC that is failing with I have another DLC, |
Fix merged in |
For certain DLC (e.g.
The Legend of Heroes Trails through Daybreak [DLC][010040C01D249001][v0].nsp
) that are not present incnmts.json
, the basetitle_id
is not correctly inferred.Ownfoil attempts to locate the base
title_id
by replacing the last three characters of theapp_id
with000
to get the assumed base, which results in010040C01D249000
instead of the correct base010040C01D248000
, causing the basetitle_id
to beUnrecognized
. TheUnrecognized
title also causes QoL features likeMissing Update
andMissing DLC
to be less useful, since the default is "missing", potentially masking true missing updates/DLC.While researching this issue, I spot-checked ~50 DLC (
"titleType": 130
) entries incnmts.json
and found that in every case, the correct basetitle_id
could be inferred by subtracting0x01
fromapp_id[:-3]
before appending000
.So instead of:
ownfoil/app/titles.py
Lines 83 to 84 in 8e77292
You could do:
Which works in basic testing:
The DLC is present in
titles.US.en.json
, so the banner, DLC name, etc. are pulled correctly.So far I have seen this behavior on the following titles:
01002E7016C47001
vs.01002E7016C46000
0100ED9018F3F001
vs.0100ED9018F3E000
010040C01D249001
vs.010040C01D248000
010082901D6F3002
vs.010082901D6F2000
01008BE01E1C3001
vs.01008BE01E1C2000
010069401ADB9001
vs.010069401ADB8000
Edit: add
rjust()
to ensure proper hex string lengthThe text was updated successfully, but these errors were encountered: