diff --git a/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs b/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs index 1ba0ff3219..954ced4c4b 100644 --- a/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs +++ b/Ryujinx.Core/OsHle/Services/Am/IApplicationFunctions.cs @@ -27,12 +27,10 @@ namespace Ryujinx.Core.OsHle.Services.Am }; } - private const uint LaunchParamsMagic = 0xc79497ca; - public long PopLaunchParameter(ServiceCtx Context) { //Only the first 0x18 bytes of the Data seems to be actually used. - MakeObject(Context, new IStorage(MakeLaunchParams())); + MakeObject(Context, new IStorage(StorageHelper.MakeLaunchParams())); return 0; } @@ -116,23 +114,5 @@ namespace Ryujinx.Core.OsHle.Services.Am return 0; } - - private byte[] MakeLaunchParams() - { - //Size needs to be at least 0x88 bytes otherwise application errors. - using (MemoryStream MS = new MemoryStream()) - { - BinaryWriter Writer = new BinaryWriter(MS); - - MS.SetLength(0x88); - - Writer.Write(LaunchParamsMagic); - Writer.Write(1); //IsAccountSelected? Only lower 8 bits actually used. - Writer.Write(1L); //User Id Low (note: User Id needs to be != 0) - Writer.Write(0L); //User Id High - - return MS.ToArray(); - } - } } } diff --git a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs index d386e917f6..1749b686e6 100644 --- a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs +++ b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletAccessor.cs @@ -28,8 +28,6 @@ namespace Ryujinx.Core.OsHle.Services.Am StateChangedEvent = new KEvent(); } - private const uint LaunchParamsMagic = 0xc79497ca; - public long GetAppletStateChangedEvent(ServiceCtx Context) { StateChangedEvent.WaitEvent.Set(); @@ -66,27 +64,9 @@ namespace Ryujinx.Core.OsHle.Services.Am public long PopOutData(ServiceCtx Context) { - MakeObject(Context, new IStorage(MakeLaunchParams())); + MakeObject(Context, new IStorage(StorageHelper.MakeLaunchParams())); return 0; } - - private byte[] MakeLaunchParams() - { - //Size needs to be at least 0x88 bytes otherwise application errors. - using (MemoryStream MS = new MemoryStream()) - { - BinaryWriter Writer = new BinaryWriter(MS); - - MS.SetLength(0x88); - - Writer.Write(LaunchParamsMagic); - Writer.Write(1); //IsAccountSelected? Only lower 8 bits actually used. - Writer.Write(1L); //User Id Low (note: User Id needs to be != 0) - Writer.Write(0L); //User Id High - - return MS.ToArray(); - } - } } } \ No newline at end of file diff --git a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs index 06d2888806..ea64289aa2 100644 --- a/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs +++ b/Ryujinx.Core/OsHle/Services/Am/ILibraryAppletCreator.cs @@ -19,8 +19,6 @@ namespace Ryujinx.Core.OsHle.Services.Am }; } - private const uint LaunchParamsMagic = 0xc79497ca; - public long CreateLibraryApplet(ServiceCtx Context) { MakeObject(Context, new ILibraryAppletAccessor()); @@ -30,27 +28,9 @@ namespace Ryujinx.Core.OsHle.Services.Am public long CreateStorage(ServiceCtx Context) { - MakeObject(Context, new IStorage(MakeLaunchParams())); + MakeObject(Context, new IStorage(StorageHelper.MakeLaunchParams())); return 0; } - - private byte[] MakeLaunchParams() - { - //Size needs to be at least 0x88 bytes otherwise application errors. - using (MemoryStream MS = new MemoryStream()) - { - BinaryWriter Writer = new BinaryWriter(MS); - - MS.SetLength(0x88); - - Writer.Write(LaunchParamsMagic); - Writer.Write(1); //IsAccountSelected? Only lower 8 bits actually used. - Writer.Write(1L); //User Id Low (note: User Id needs to be != 0) - Writer.Write(0L); //User Id High - - return MS.ToArray(); - } - } } } \ No newline at end of file diff --git a/Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs b/Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs new file mode 100644 index 0000000000..fa4f6bedb1 --- /dev/null +++ b/Ryujinx.Core/OsHle/Services/Am/StorageHelper.cs @@ -0,0 +1,27 @@ +using System.IO; + +namespace Ryujinx.Core.OsHle.Services.Am +{ + class StorageHelper + { + private const uint LaunchParamsMagic = 0xc79497ca; + + public static byte[] MakeLaunchParams() + { + //Size needs to be at least 0x88 bytes otherwise application errors. + using (MemoryStream MS = new MemoryStream()) + { + BinaryWriter Writer = new BinaryWriter(MS); + + MS.SetLength(0x88); + + Writer.Write(LaunchParamsMagic); + Writer.Write(1); //IsAccountSelected? Only lower 8 bits actually used. + Writer.Write(1L); //User Id Low (note: User Id needs to be != 0) + Writer.Write(0L); //User Id High + + return MS.ToArray(); + } + } + } +}