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
Don't blow up everything if a DLC file is moved or renamed. #2867
Conversation
Potentially closes #1366, but someone will need to check if the other issues have already been fixed. |
Download the artifacts for this pull request: |
oh wow there have been a lot of bugs filed for this. I would also like to fix the weirdness of "enabled DLCs are not marked as enabled when you open the dialog" but I don't understand the data flow well enough to implement it (I assume it would require adding new enabled/disabled flag to the json schema). Also this data is stored as |
My other concern is that allowing games to boot with missing DLC might somehow mess up the save state on the guest if it's not equipped to handle that scenario. Like for example if you have a Torna The Golden Country save but then you remove that DLC from the content loader, maybe the XC2 main game corrupts or deletes that save file somehow. Which makes me wonder if it would be better to either allow the crash on startup or (somewhat better user experience) refuse to boot until the missing DLC errors are resolved. |
It doesn't delete the save file, the game tells you that you need the DLC to load the save. Other games could behave differently, of course. |
Right.... I'm leaning towards just showing a clear error to the user and aborting boot just to be on the absolute safe side... ideally with a popup window but I don't know how to do that in GTK. So I might alter the runtime check to log a clear error to console and then stop. |
I think it should be handled in the same way as missing update files for consistency. IIRC it just reverts to the base version if an update is missing, without showing errors. Logging an error is fine. |
…add-on NSP based on the enabled state of all NCAs in the package.
fixed the "enabled" flag as well as I could, which addresses one more feedback on #1366 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, congratulations!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM instead of a little nit
Co-authored-by: Ac_K <Acoustik666@gmail.com>
If a DLC file goes missing, the user can't even open the DLC dialog to fix it, which leads to bad user experience. This PR adds File.Exists() checks to both the DLC dialog window and the content loader to ignore missing files rather than crashing the program.