Fix mistake

This commit is contained in:
Ac_K 2018-07-19 05:51:00 +02:00
commit d2815e9420
2 changed files with 2 additions and 10 deletions

View file

@ -41,7 +41,7 @@ namespace Ryujinx.HLE.OsHle.Kernel
{ {
if (ShouldDecrement) if (ShouldDecrement)
{ {
Memory.WriteUInt32(Address, (uint)CurrentValue - 1); Memory.WriteInt32(Address, CurrentValue - 1);
} }
} }
else else
@ -89,6 +89,6 @@ namespace Ryujinx.HLE.OsHle.Kernel
{ {
Signal, Signal,
IncrementAndSignalIfEqual, IncrementAndSignalIfEqual,
ModifyByWaitingCountAndSignalIfEqual, ModifyByWaitingCountAndSignalIfEqual
} }
} }

View file

@ -231,30 +231,22 @@ namespace Ryujinx.HLE.OsHle.Kernel
switch (Type) switch (Type)
{ {
case ArbitrationType.WaitIfLessThan: case ArbitrationType.WaitIfLessThan:
{
ThreadState.X0 = AddressArbiter.WaitForAddressIfLessThan(Process, ThreadState, Memory, Address, Value, Timeout, false); ThreadState.X0 = AddressArbiter.WaitForAddressIfLessThan(Process, ThreadState, Memory, Address, Value, Timeout, false);
break; break;
}
case ArbitrationType.DecrementAndWaitIfLessThan: case ArbitrationType.DecrementAndWaitIfLessThan:
{
ThreadState.X0 = AddressArbiter.WaitForAddressIfLessThan(Process, ThreadState, Memory, Address, Value, Timeout, true); ThreadState.X0 = AddressArbiter.WaitForAddressIfLessThan(Process, ThreadState, Memory, Address, Value, Timeout, true);
break; break;
}
case ArbitrationType.WaitIfEqual: case ArbitrationType.WaitIfEqual:
{
ThreadState.X0 = AddressArbiter.WaitForAddressIfEqual(Process, ThreadState, Memory, Address, Value, Timeout); ThreadState.X0 = AddressArbiter.WaitForAddressIfEqual(Process, ThreadState, Memory, Address, Value, Timeout);
break; break;
}
default: default:
{
ThreadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidEnumValue); ThreadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidEnumValue);
break; break;
} }
} }
}
private void MutexUnlock(KThread CurrThread, long MutexAddress) private void MutexUnlock(KThread CurrThread, long MutexAddress)
{ {