aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-03-04 00:06:44 -0300
committergdkchan <gab.dark.100@gmail.com>2018-03-04 00:06:44 -0300
commit8dcffe6a5103920ab63e46f93029b27e311335f3 (patch)
treefbc8b089505386651c39d63616808e9b9c7bd42b
parent7d48886750dadf839eb2bb37e3a81314b5497c36 (diff)
Fix hid touch screen timestamp, add more log info
-rw-r--r--Ryujinx.Core/Hid/Hid.cs14
-rw-r--r--Ryujinx.Core/OsHle/Process.cs14
-rw-r--r--Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs1
-rw-r--r--Ryujinx.Core/OsHle/Services/Hid/ServiceHid.cs6
-rw-r--r--Ryujinx.Core/OsHle/Services/Nv/ServiceNvDrv.cs4
-rw-r--r--Ryujinx/Ui/GLScreen.cs4
6 files changed, 36 insertions, 7 deletions
diff --git a/Ryujinx.Core/Hid/Hid.cs b/Ryujinx.Core/Hid/Hid.cs
index 4dbac40c..c76782cf 100644
--- a/Ryujinx.Core/Hid/Hid.cs
+++ b/Ryujinx.Core/Hid/Hid.cs
@@ -164,6 +164,8 @@ namespace Ryujinx.Core.Input
public void SetTouchPoints(params HidTouchPoint[] Points)
{
+ Logging.Debug("hid touch");
+
long LastEntry = ReadInt64(HidTouchScreenOffset + 0x10);
long CurrEntry = (LastEntry + 1) % HidEntryCount;
@@ -178,9 +180,13 @@ namespace Ryujinx.Core.Input
long TouchEntryOffset = HidTouchScreenOffset + HidTouchHeaderSize;
- TouchEntryOffset += CurrEntry * HidTouchEntrySize;
+ long LastEntryOffset = TouchEntryOffset + LastEntry * HidTouchEntrySize;
+
+ long LastTimestamp = ReadInt64(LastEntryOffset);
+
+ TouchEntryOffset += CurrEntry * HidTouchEntrySize;
- WriteInt64(TouchEntryOffset + 0x0, Timestamp);
+ WriteInt64(TouchEntryOffset + 0x0, LastTimestamp + 1);
WriteInt64(TouchEntryOffset + 0x8, Points.Length);
TouchEntryOffset += HidTouchEntryHeaderSize;
@@ -220,6 +226,8 @@ namespace Ryujinx.Core.Input
if ((ulong)Position + 4 > AMemoryMgr.AddrSize) return;
+ Logging.Debug($"hid wr32 {Position:x8} {Value:x8}");
+
*((int*)((byte*)Ns.Ram + Position)) = Value;
}
@@ -229,6 +237,8 @@ namespace Ryujinx.Core.Input
if ((ulong)Position + 8 > AMemoryMgr.AddrSize) return;
+ Logging.Debug($"hid wr64 {Position:x8} {Value:x16}");
+
*((long*)((byte*)Ns.Ram + Position)) = Value;
}
}
diff --git a/Ryujinx.Core/OsHle/Process.cs b/Ryujinx.Core/OsHle/Process.cs
index 84a21a8c..f549b027 100644
--- a/Ryujinx.Core/OsHle/Process.cs
+++ b/Ryujinx.Core/OsHle/Process.cs
@@ -239,7 +239,19 @@ namespace Ryujinx.Core.OsHle
private void CpuTraceHandler(object sender, ACpuTraceEventArgs e)
{
- Logging.Trace($"Executing at 0x{e.Position:x16} {e.SubName}");
+ string NsoName = string.Empty;
+
+ for (int Index = Executables.Count - 1; Index >= 0; Index--)
+ {
+ if (e.Position >= Executables[Index].ImageBase)
+ {
+ NsoName = $"{(e.Position - Executables[Index].ImageBase):x16}";
+
+ break;
+ }
+ }
+
+ Logging.Trace($"Executing at 0x{e.Position:x16} {e.SubName} {NsoName}");
}
public void EnableCpuTracing()
diff --git a/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs b/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs
index 3593bafb..569a7dd6 100644
--- a/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs
+++ b/Ryujinx.Core/OsHle/Services/FspSrv/IFileSystem.cs
@@ -1,4 +1,3 @@
-using ChocolArm64.Memory;
using Ryujinx.Core.OsHle.Ipc;
using System;
using System.Collections.Generic;
diff --git a/Ryujinx.Core/OsHle/Services/Hid/ServiceHid.cs b/Ryujinx.Core/OsHle/Services/Hid/ServiceHid.cs
index b0e5f44e..cc30a771 100644
--- a/Ryujinx.Core/OsHle/Services/Hid/ServiceHid.cs
+++ b/Ryujinx.Core/OsHle/Services/Hid/ServiceHid.cs
@@ -26,6 +26,7 @@ namespace Ryujinx.Core.OsHle.IpcServices.Hid
{ 121, GetNpadJoyHoldType },
{ 200, GetVibrationDeviceInfo },
{ 203, CreateActiveVibrationDeviceList },
+ { 206, SendVibrationValues }
};
}
@@ -104,5 +105,10 @@ namespace Ryujinx.Core.OsHle.IpcServices.Hid
return 0;
}
+
+ public long SendVibrationValues(ServiceCtx Context)
+ {
+ return 0;
+ }
}
} \ No newline at end of file
diff --git a/Ryujinx.Core/OsHle/Services/Nv/ServiceNvDrv.cs b/Ryujinx.Core/OsHle/Services/Nv/ServiceNvDrv.cs
index 1de0ab70..2f223891 100644
--- a/Ryujinx.Core/OsHle/Services/Nv/ServiceNvDrv.cs
+++ b/Ryujinx.Core/OsHle/Services/Nv/ServiceNvDrv.cs
@@ -532,6 +532,8 @@ namespace Ryujinx.Core.OsHle.IpcServices.NvServices
Context.Memory.WriteInt32(Position + 4, Handle);
+ Logging.Info($"NvMap {Id} created with size {Size:x8}!");
+
return 0;
}
@@ -580,7 +582,7 @@ namespace Ryujinx.Core.OsHle.IpcServices.NvServices
NvMap.Kind = Kind;
}
- Logging.Debug($"NvMapIocAlloc at {NvMap.Address:x16}");
+ Logging.Debug($"{NvMap.Address:x16}");
return 0;
}
diff --git a/Ryujinx/Ui/GLScreen.cs b/Ryujinx/Ui/GLScreen.cs
index be49d1fc..1e48b280 100644
--- a/Ryujinx/Ui/GLScreen.cs
+++ b/Ryujinx/Ui/GLScreen.cs
@@ -44,7 +44,7 @@ namespace Ryujinx
HidJoystickPosition LeftJoystick;
HidJoystickPosition RightJoystick;
- if (Keyboard[OpenTK.Input.Key.Escape]) this.Exit();
+ if (Keyboard[Key.Escape]) this.Exit();
int LeftJoystickDX = 0;
int LeftJoystickDY = 0;
@@ -99,7 +99,7 @@ namespace Ryujinx
//Get screen touch position from left mouse click
//OpenTK always captures mouse events, even if out of focus, so check if window is focused.
- if (Focused && Mouse?.GetState().LeftButton == OpenTK.Input.ButtonState.Pressed)
+ if (Focused && Mouse?.GetState().LeftButton == ButtonState.Pressed)
{
int ScrnWidth = Width;
int ScrnHeight = Height;