forked from Mirror/Ryujinx
Fix hid touch screen timestamp, add more log info
This commit is contained in:
parent
7d48886750
commit
8dcffe6a51
6 changed files with 36 additions and 7 deletions
|
@ -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;
|
||||
|
||||
WriteInt64(TouchEntryOffset + 0x0, Timestamp);
|
||||
long LastTimestamp = ReadInt64(LastEntryOffset);
|
||||
|
||||
TouchEntryOffset += CurrEntry * HidTouchEntrySize;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
using ChocolArm64.Memory;
|
||||
using Ryujinx.Core.OsHle.Ipc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Reference in a new issue