Fix Tamper Machine crash and timings (#2159)

* Add missing return

* Change TamperMachine sleep to 83ms

* Change constant name to PascalCase
This commit is contained in:
Caian Benedicto 2021-04-02 10:42:25 -03:00 committed by GitHub
parent 524fe3bea4
commit 9ae60207c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 1 deletions

View file

@ -630,6 +630,8 @@ namespace Ryujinx.HLE.HOS
if (tamperInfo == null || tamperInfo.BuildIds == null || tamperInfo.CodeAddresses == null) if (tamperInfo == null || tamperInfo.BuildIds == null || tamperInfo.CodeAddresses == null)
{ {
Logger.Error?.Print(LogClass.ModLoader, "Unable to install cheat because the associated process is invalid"); Logger.Error?.Print(LogClass.ModLoader, "Unable to install cheat because the associated process is invalid");
return;
} }
Logger.Info?.Print(LogClass.ModLoader, $"Build ids found for title {titleId:X16}:\n {String.Join("\n ", tamperInfo.BuildIds)}"); Logger.Info?.Print(LogClass.ModLoader, $"Build ids found for title {titleId:X16}:\n {String.Join("\n ", tamperInfo.BuildIds)}");

View file

@ -13,6 +13,10 @@ namespace Ryujinx.HLE.HOS
{ {
public class TamperMachine public class TamperMachine
{ {
// Atmosphere specifies a delay of 83 milliseconds between the execution of the last
// cheat and the re-execution of the first one.
private const int TamperMachineSleepMs = 1000 / 12;
private Thread _tamperThread = null; private Thread _tamperThread = null;
private ConcurrentQueue<ITamperProgram> _programs = new ConcurrentQueue<ITamperProgram>(); private ConcurrentQueue<ITamperProgram> _programs = new ConcurrentQueue<ITamperProgram>();
private long _pressedKeys = 0; private long _pressedKeys = 0;
@ -76,7 +80,7 @@ namespace Ryujinx.HLE.HOS
if (sleepCounter == 0) if (sleepCounter == 0)
{ {
sleepCounter = _programs.Count; sleepCounter = _programs.Count;
Thread.Sleep(1); Thread.Sleep(TamperMachineSleepMs);
} }
else else
{ {