aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE')
-rw-r--r--Ryujinx.HLE/HOS/ApplicationLoader.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs30
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/ProfilesJsonSerializerContext.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/Types/ProfilesJson.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfileJson.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/AmiiboJsonSerializerContext.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs10
8 files changed, 35 insertions, 64 deletions
diff --git a/Ryujinx.HLE/HOS/ApplicationLoader.cs b/Ryujinx.HLE/HOS/ApplicationLoader.cs
index 7d06e5eb..82bd9b31 100644
--- a/Ryujinx.HLE/HOS/ApplicationLoader.cs
+++ b/Ryujinx.HLE/HOS/ApplicationLoader.cs
@@ -13,7 +13,6 @@ using LibHac.Tools.FsSystem;
using LibHac.Tools.FsSystem.NcaUtils;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
-using Ryujinx.Common.Utilities;
using Ryujinx.Cpu;
using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.Loaders.Executables;
@@ -25,13 +24,14 @@ using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
-using System.Text.Json;
using static Ryujinx.HLE.HOS.ModLoader;
using ApplicationId = LibHac.Ncm.ApplicationId;
using Path = System.IO.Path;
namespace Ryujinx.HLE.HOS
{
+ using JsonHelper = Common.Utilities.JsonHelper;
+
public class ApplicationLoader
{
// Binaries from exefs are loaded into mem in this order. Do not change.
@@ -57,10 +57,6 @@ namespace Ryujinx.HLE.HOS
private string _displayVersion;
private BlitStruct<ApplicationControlProperty> _controlData;
- private static readonly JsonSerializerOptions SerializerOptions = JsonHelper.GetDefaultSerializerOptions();
- private static readonly DownloadableContentJsonSerializerContext ContentSerializerContext = new(SerializerOptions);
- private static readonly TitleUpdateMetadataJsonSerializerContext TitleSerializerContext = new(SerializerOptions);
-
public BlitStruct<ApplicationControlProperty> ControlData => _controlData;
public string TitleName => _titleName;
public string DisplayVersion => _displayVersion;
@@ -201,7 +197,7 @@ namespace Ryujinx.HLE.HOS
if (File.Exists(titleUpdateMetadataPath))
{
- updatePath = JsonHelper.DeserializeFromFile(titleUpdateMetadataPath, TitleSerializerContext.TitleUpdateMetadata).Selected;
+ updatePath = JsonHelper.DeserializeFromFile<TitleUpdateMetadata>(titleUpdateMetadataPath).Selected;
if (File.Exists(updatePath))
{
@@ -415,7 +411,7 @@ namespace Ryujinx.HLE.HOS
if (File.Exists(titleAocMetadataPath))
{
- List<DownloadableContentContainer> dlcContainerList = JsonHelper.DeserializeFromFile(titleAocMetadataPath, ContentSerializerContext.ListDownloadableContentContainer);
+ List<DownloadableContentContainer> dlcContainerList = JsonHelper.DeserializeFromFile<List<DownloadableContentContainer>>(titleAocMetadataPath);
foreach (DownloadableContentContainer downloadableContentContainer in dlcContainerList)
{
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
index 535779d2..ec0b0a10 100644
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
@@ -1,11 +1,11 @@
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Utilities;
-using Ryujinx.HLE.HOS.Services.Account.Acc.Types;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
+using System.Text.Json.Serialization;
namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
@@ -13,7 +13,29 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
private readonly string _profilesJsonPath = Path.Join(AppDataManager.BaseDirPath, "system", "Profiles.json");
- private static readonly ProfilesJsonSerializerContext SerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
+ private struct ProfilesJson
+ {
+ [JsonPropertyName("profiles")]
+ public List<UserProfileJson> Profiles { get; set; }
+ [JsonPropertyName("last_opened")]
+ public string LastOpened { get; set; }
+ }
+
+ private struct UserProfileJson
+ {
+ [JsonPropertyName("user_id")]
+ public string UserId { get; set; }
+ [JsonPropertyName("name")]
+ public string Name { get; set; }
+ [JsonPropertyName("account_state")]
+ public AccountState AccountState { get; set; }
+ [JsonPropertyName("online_play_state")]
+ public AccountState OnlinePlayState { get; set; }
+ [JsonPropertyName("last_modified_timestamp")]
+ public long LastModifiedTimestamp { get; set; }
+ [JsonPropertyName("image")]
+ public byte[] Image { get; set; }
+ }
public UserId LastOpened { get; set; }
@@ -25,7 +47,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
try
{
- ProfilesJson profilesJson = JsonHelper.DeserializeFromFile(_profilesJsonPath, SerializerContext.ProfilesJson);
+ ProfilesJson profilesJson = JsonHelper.DeserializeFromFile<ProfilesJson>(_profilesJsonPath);
foreach (var profile in profilesJson.Profiles)
{
@@ -70,7 +92,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
});
}
- JsonHelper.SerializeToFile(_profilesJsonPath, profilesJson, SerializerContext.ProfilesJson);
+ File.WriteAllText(_profilesJsonPath, JsonHelper.Serialize(profilesJson, true));
}
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/ProfilesJsonSerializerContext.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/ProfilesJsonSerializerContext.cs
deleted file mode 100644
index 6b54898e..00000000
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/ProfilesJsonSerializerContext.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Ryujinx.HLE.HOS.Services.Account.Acc.Types;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.HLE.HOS.Services.Account.Acc
-{
- [JsonSourceGenerationOptions(WriteIndented = true)]
- [JsonSerializable(typeof(ProfilesJson))]
- internal partial class ProfilesJsonSerializerContext : JsonSerializerContext
- {
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs
index 1699abfb..2382a255 100644
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/AccountState.cs
@@ -1,9 +1,5 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
- [JsonConverter(typeof(TypedStringEnumConverter<AccountState>))]
public enum AccountState
{
Closed,
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/ProfilesJson.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/ProfilesJson.cs
deleted file mode 100644
index 09f9d142..00000000
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/ProfilesJson.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Collections.Generic;
-
-namespace Ryujinx.HLE.HOS.Services.Account.Acc.Types
-{
- internal struct ProfilesJson
- {
- public List<UserProfileJson> Profiles { get; set; }
- public string LastOpened { get; set; }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfileJson.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfileJson.cs
deleted file mode 100644
index 06ff4833..00000000
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserProfileJson.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace Ryujinx.HLE.HOS.Services.Account.Acc.Types
-{
- internal struct UserProfileJson
- {
- public string UserId { get; set; }
- public string Name { get; set; }
- public AccountState AccountState { get; set; }
- public AccountState OnlinePlayState { get; set; }
- public long LastModifiedTimestamp { get; set; }
- public byte[] Image { get; set; }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/AmiiboJsonSerializerContext.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/AmiiboJsonSerializerContext.cs
deleted file mode 100644
index e75f6200..00000000
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/AmiiboJsonSerializerContext.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
-{
- [JsonSerializable(typeof(VirtualAmiiboFile))]
- internal partial class AmiiboJsonSerializerContext : JsonSerializerContext
- {
- }
-} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
index 9166e87f..4fdeadcb 100644
--- a/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
@@ -1,6 +1,5 @@
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Memory;
-using Ryujinx.Common.Utilities;
using Ryujinx.Cpu;
using Ryujinx.HLE.HOS.Services.Mii;
using Ryujinx.HLE.HOS.Services.Mii.Types;
@@ -9,6 +8,8 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Text;
+using System.Text.Json;
namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
@@ -16,8 +17,6 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
private static uint _openedApplicationAreaId;
- private static readonly AmiiboJsonSerializerContext SerializerContext = AmiiboJsonSerializerContext.Default;
-
public static byte[] GenerateUuid(string amiiboId, bool useRandomUuid)
{
if (useRandomUuid)
@@ -174,7 +173,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
if (File.Exists(filePath))
{
- virtualAmiiboFile = JsonHelper.DeserializeFromFile(filePath, SerializerContext.VirtualAmiiboFile);
+ virtualAmiiboFile = JsonSerializer.Deserialize<VirtualAmiiboFile>(File.ReadAllText(filePath), new JsonSerializerOptions(JsonSerializerDefaults.General));
}
else
{
@@ -198,7 +197,8 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
private static void SaveAmiiboFile(VirtualAmiiboFile virtualAmiiboFile)
{
string filePath = Path.Join(AppDataManager.BaseDirPath, "system", "amiibo", $"{virtualAmiiboFile.AmiiboId}.json");
- JsonHelper.SerializeToFile(filePath, virtualAmiiboFile, SerializerContext.VirtualAmiiboFile);
+
+ File.WriteAllText(filePath, JsonSerializer.Serialize(virtualAmiiboFile));
}
}
}