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

Dialog: Simulate volatile memory lock behavior #13943

Merged
merged 3 commits into from
Feb 15, 2021

Conversation

unknownbrackets
Copy link
Collaborator

See notes in #13765. While not using a thread (which is likely more correct), this largely simulates the observable behavior for most dialogs. It also prevents state changes until the lock is acquired, which might be important for timing things in some games.

Should help #8288.

-[Unknown]

@Panderner
Copy link
Contributor

Crisis Core and Wall-E broke this PR unfortunately

@Nanoposan69
Copy link

GTA LCS and VCS is now broken too.

@unknownbrackets
Copy link
Collaborator Author

Hm, it seems like that might require respecting thread priority. What it seems to do:

  1. Run savedata calls on a better priority thread.
  2. Sleep the savedata calls thread after calling shutdown.
  3. On a worse priority thread, wakeup the savedata thread.
  4. Close things down and try to lock volatile.

It does a "try" which fails, instead of blocking. If it had used sceKernelVolatileMemLock, everything would've been fine, but it just assumes the try succeeds.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants