diff --git a/src/Ryujinx.UI.Common/Models/DownloadableContentModel.cs b/src/Ryujinx.UI.Common/Models/DownloadableContentModel.cs
index 95c64f078..d0b711857 100644
--- a/src/Ryujinx.UI.Common/Models/DownloadableContentModel.cs
+++ b/src/Ryujinx.UI.Common/Models/DownloadableContentModel.cs
@@ -6,7 +6,7 @@ namespace Ryujinx.UI.Common.Models
public bool IsBundled { get; } = System.IO.Path.GetExtension(ContainerPath)?.ToLower() == ".xci";
public string FileName => System.IO.Path.GetFileName(ContainerPath);
- public string TitleIdStr => TitleId.ToString("x16");
+ public string TitleIdStr => TitleId.ToString("x16").ToUpper();
public ulong TitleIdBase => TitleId & ~0x1FFFUL;
}
}
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index e0b042bb1..188ce1a93 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -913,5 +913,8 @@
"FpsTurboStatusBarText": "{0} FPS ({1}ms), Turbo ({2}%)",
"SettingsTabHotkeysTurboMode": "Turbo mode:",
"SettingsTabHotkeysTurboModeToolTip": "The Turbo mode hotkey.\\nConfigure the behavior of Turbo mode in Ryujinx CPU settings.\\n\\nLeave Unbound if unsure.",
- "SettingsTabHotkeysOnlyWhilePressed": "Only while pressed"
+ "SettingsTabHotkeysOnlyWhilePressed": "Only while pressed",
+ "GameListContextMenuExtractDataAocRomFS": "DLC RomFS",
+ "GameListContextMenuExtractDataAocRomFSToolTip": "Extract the RomFS from a selected DLC file",
+ "ExtractAocListHeader": "Select a DLC to Extract"
}
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 64fcbd93e..335035e5e 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -821,5 +821,8 @@
"FpsStatusBarText": "{0} FPS ({1}ms)",
"SettingsTabHotkeysTurboMode": "Mode Turbo :",
"SettingsTabHotkeysTurboModeToolTip": "Le raccourci clavier Mode Turbo.\\nConfigurez le comportement du Mode Turbo dans les paramètres de CPU de Ryujinx.\\n\\nLaisser Non Attribuée si incertain.",
- "SettingsTabHotkeysOnlyWhilePressed": "Seulement quand le raccourci est maintenu"
+ "SettingsTabHotkeysOnlyWhilePressed": "Seulement quand le raccourci est maintenu",
+ "GameListContextMenuExtractDataAocRomFS": "RomFS de DLC",
+ "GameListContextMenuExtractDataAocRomFSToolTip": "Extraire les RomFS d'un fichier DLC choisi",
+ "ExtractAocListHeader": "Choisissez un DLC à extraire"
}
diff --git a/src/Ryujinx/Common/ApplicationHelper.cs b/src/Ryujinx/Common/ApplicationHelper.cs
index 80309515b..75eb03c1e 100644
--- a/src/Ryujinx/Common/ApplicationHelper.cs
+++ b/src/Ryujinx/Common/ApplicationHelper.cs
@@ -297,13 +297,13 @@ namespace Ryujinx.Ava.Common
extractorThread.Start();
}
- public static void ExtractAoc(string destination, NcaSectionType ncaSectionType, string updateFilePath, string updateName)
+ public static void ExtractAoc(string destination, string updateFilePath, string updateName)
{
var cancellationToken = new CancellationTokenSource();
UpdateWaitWindow waitingDialog = new(
$"Ryujinx {Program.Version} - {LocaleManager.Instance[LocaleKeys.DialogNcaExtractionTitle]}",
- LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogNcaExtractionMessage, ncaSectionType, Path.GetFileName(updateFilePath)),
+ LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogNcaExtractionMessage, NcaSectionType.Data, Path.GetFileName(updateFilePath)),
cancellationToken);
Thread extractorThread = new(() =>
@@ -353,7 +353,7 @@ namespace Ryujinx.Ava.Common
? IntegrityCheckLevel.ErrorOnInvalid
: IntegrityCheckLevel.None;
- int index = Nca.GetSectionIndexFromType(ncaSectionType, publicDataNca.Header.ContentType);
+ int index = Nca.GetSectionIndexFromType(NcaSectionType.Data, publicDataNca.Header.ContentType);
try
{
@@ -411,14 +411,13 @@ namespace Ryujinx.Ava.Common
}
})
{
- Name = "GUI.NcaSectionExtractorThread",
+ Name = "GUI.AocExtractorThread",
IsBackground = true,
};
extractorThread.Start();
}
- public static async Task ExtractAoc(IStorageProvider storageProvider, NcaSectionType ncaSectionType,
- string updateFilePath, string updateName)
+ public static async Task ExtractAoc(IStorageProvider storageProvider, string updateFilePath, string updateName)
{
var result = await storageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
{
@@ -431,7 +430,7 @@ namespace Ryujinx.Ava.Common
return;
}
- ExtractAoc(result[0].Path.LocalPath, ncaSectionType, updateFilePath, updateName);
+ ExtractAoc(result[0].Path.LocalPath, updateFilePath, updateName);
}
diff --git a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml
index 23718ed25..05fef6cc8 100644
--- a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml
+++ b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml
@@ -97,6 +97,10 @@
Click="ExtractApplicationRomFs_Click"
Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
+