aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Horizon.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Horizon.cs')
-rw-r--r--Ryujinx.HLE/HOS/Horizon.cs36
1 files changed, 23 insertions, 13 deletions
diff --git a/Ryujinx.HLE/HOS/Horizon.cs b/Ryujinx.HLE/HOS/Horizon.cs
index 3034d107..a4ed7c37 100644
--- a/Ryujinx.HLE/HOS/Horizon.cs
+++ b/Ryujinx.HLE/HOS/Horizon.cs
@@ -45,10 +45,11 @@ namespace Ryujinx.HLE.HOS
public class Horizon : IDisposable
{
- internal const int HidSize = 0x40000;
- internal const int FontSize = 0x1100000;
- internal const int IirsSize = 0x8000;
- internal const int TimeSize = 0x1000;
+ internal const int HidSize = 0x40000;
+ internal const int FontSize = 0x1100000;
+ internal const int IirsSize = 0x8000;
+ internal const int TimeSize = 0x1000;
+ internal const int AppletCaptureBufferSize = 0x384000;
internal KernelContext KernelContext { get; }
@@ -82,6 +83,9 @@ namespace Ryujinx.HLE.HOS
internal KSharedMemory HidSharedMem { get; private set; }
internal KSharedMemory FontSharedMem { get; private set; }
internal KSharedMemory IirsSharedMem { get; private set; }
+
+ internal KTransferMemory AppletCaptureBufferTransfer { get; private set; }
+
internal SharedFontManager Font { get; private set; }
internal AccountManager AccountManager { get; private set; }
@@ -129,25 +133,29 @@ namespace Ryujinx.HLE.HOS
// region used that is used is Application, so we can use the other ones for anything.
KMemoryRegionManager region = KernelContext.MemoryManager.MemoryRegions[(int)MemoryRegion.NvServices];
- ulong hidPa = region.Address;
- ulong fontPa = region.Address + HidSize;
- ulong iirsPa = region.Address + HidSize + FontSize;
- ulong timePa = region.Address + HidSize + FontSize + IirsSize;
+ ulong hidPa = region.Address;
+ ulong fontPa = region.Address + HidSize;
+ ulong iirsPa = region.Address + HidSize + FontSize;
+ ulong timePa = region.Address + HidSize + FontSize + IirsSize;
+ ulong appletCaptureBufferPa = region.Address + HidSize + FontSize + IirsSize + TimeSize;
- KPageList hidPageList = new KPageList();
- KPageList fontPageList = new KPageList();
- KPageList iirsPageList = new KPageList();
- KPageList timePageList = new KPageList();
+ KPageList hidPageList = new KPageList();
+ KPageList fontPageList = new KPageList();
+ KPageList iirsPageList = new KPageList();
+ KPageList timePageList = new KPageList();
+ KPageList appletCaptureBufferPageList = new KPageList();
- hidPageList.AddRange(hidPa, HidSize / KPageTableBase.PageSize);
+ hidPageList.AddRange(hidPa, HidSize / KPageTableBase.PageSize);
fontPageList.AddRange(fontPa, FontSize / KPageTableBase.PageSize);
iirsPageList.AddRange(iirsPa, IirsSize / KPageTableBase.PageSize);
timePageList.AddRange(timePa, TimeSize / KPageTableBase.PageSize);
+ appletCaptureBufferPageList.AddRange(appletCaptureBufferPa, AppletCaptureBufferSize / KPageTableBase.PageSize);
var hidStorage = new SharedMemoryStorage(KernelContext, hidPageList);
var fontStorage = new SharedMemoryStorage(KernelContext, fontPageList);
var iirsStorage = new SharedMemoryStorage(KernelContext, iirsPageList);
var timeStorage = new SharedMemoryStorage(KernelContext, timePageList);
+ var appletCaptureBufferStorage = new SharedMemoryStorage(KernelContext, appletCaptureBufferPageList);
HidStorage = hidStorage;
@@ -159,6 +167,8 @@ namespace Ryujinx.HLE.HOS
TimeServiceManager.Instance.Initialize(device, this, timeSharedMemory, timeStorage, TimeSize);
+ AppletCaptureBufferTransfer = new KTransferMemory(KernelContext, appletCaptureBufferStorage);
+
AppletState = new AppletStateMgr(this);
AppletState.SetFocus(true);