-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Implement _sys_lwmutex_unlock SYS_SYNC_RETRY mode #5680
Conversation
only come to say you are the reason for most fix's and make most games playable thanks a lot elad |
arg6 doesnt exist, if arg4 is not negative name is discarded and treated as 0.
I did more reverse engineering for this syscall, turns out this syscall uses unique unlocking flags as opposed to Testcase for all of this: https://github.com/elad335/myps3tests/tree/master/ppu_tests/sys_lwmutex_117%20syscall |
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
Implement missing SYS_SYNC_RETRY logic Following RPCS3#5680
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
Implement syscall 117, used by liblv2 lwmutex when using protocol SYS_SYNC_RETRY
on unlock, this mode unlocks the lwmutex, and awakes a waiter with EBUSY error code.in this case the waiter in liblv2 lwmutex_lock retries to lock and call the syscall again.Fixes OG Infinite Battle when using load liblv2 only option, allows it to go ingame. (ingame in auto lib loading)