aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/Storage/StorageHelper.cs
blob: 6c23720eefe2aba6752a01ceb79886512096d658 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using Ryujinx.Common.Memory;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using System.IO;

namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.Storage
{
    class StorageHelper
    {
        private const uint LaunchParamsMagic = 0xc79497ca;

        public static byte[] MakeLaunchParams(UserProfile userProfile)
        {
            // Size needs to be at least 0x88 bytes otherwise application errors.
            using MemoryStream ms = MemoryStreamManager.Shared.GetStream();
            BinaryWriter writer = new(ms);

            ms.SetLength(0x88);

            writer.Write(LaunchParamsMagic);
            writer.Write(1);  // IsAccountSelected? Only lower 8 bits actually used.
            userProfile.UserId.Write(writer);

            return ms.ToArray();
        }
    }
}