mirror of
https://git.ryujinx.app/projects/Kenji-NX.git
synced 2026-09-27 23:07:56 +02:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e6e4076bf | ||
|
|
ab7176e6fc | ||
|
|
20868546b0 |
@@ -166,15 +166,13 @@ namespace Ryujinx.HLE.HOS.Applets.Error
|
|||||||
|
|
||||||
string[] buttons = GetButtonsText(module, description, "DlgBtn");
|
string[] buttons = GetButtonsText(module, description, "DlgBtn");
|
||||||
|
|
||||||
(uint Module, uint Description) errorCodeTuple = (module, uint.Parse(description.ToString("0000")));
|
bool showDetails = _horizon.Device.UIHandler.DisplayErrorAppletDialog($"Error Code: {module}-{description:0000}", "\n" + message, buttons);
|
||||||
|
|
||||||
bool showDetails = _horizon.Device.UIHandler.DisplayErrorAppletDialog($"Error Code: {module}-{description:0000}", "\n" + message, buttons, errorCodeTuple);
|
|
||||||
if (showDetails)
|
if (showDetails)
|
||||||
{
|
{
|
||||||
message = GetMessageText(module, description, "FlvMsg");
|
message = GetMessageText(module, description, "FlvMsg");
|
||||||
buttons = GetButtonsText(module, description, "FlvBtn");
|
buttons = GetButtonsText(module, description, "FlvBtn");
|
||||||
|
|
||||||
_horizon.Device.UIHandler.DisplayErrorAppletDialog($"Details: {module}-{description:0000}", "\n" + message, buttons, errorCodeTuple);
|
_horizon.Device.UIHandler.DisplayErrorAppletDialog($"Details: {module}-{description:0000}", "\n" + message, buttons);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,19 +27,9 @@ namespace Ryujinx.HLE.HOS.Applets
|
|||||||
_normalSession = normalSession;
|
_normalSession = normalSession;
|
||||||
_interactiveSession = interactiveSession;
|
_interactiveSession = interactiveSession;
|
||||||
|
|
||||||
UserProfile selected = _system.Device.UIHandler.ShowPlayerSelectDialog();
|
// TODO(jduncanator): Parse PlayerSelectConfig from input data
|
||||||
if (selected == null)
|
|
||||||
{
|
|
||||||
_normalSession.Push(BuildResponse());
|
_normalSession.Push(BuildResponse());
|
||||||
}
|
|
||||||
else if (selected.UserId == new UserId("00000000000000000000000000000080"))
|
|
||||||
{
|
|
||||||
_normalSession.Push(BuildGuestResponse());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_normalSession.Push(BuildResponse(selected));
|
|
||||||
}
|
|
||||||
AppletStateChanged?.Invoke(this, null);
|
AppletStateChanged?.Invoke(this, null);
|
||||||
|
|
||||||
_system.ReturnFocus();
|
_system.ReturnFocus();
|
||||||
@@ -47,34 +37,16 @@ namespace Ryujinx.HLE.HOS.Applets
|
|||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] BuildResponse(UserProfile selectedUser)
|
private byte[] BuildResponse()
|
||||||
{
|
{
|
||||||
|
UserProfile currentUser = _system.AccountManager.LastOpenedUser;
|
||||||
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
||||||
using BinaryWriter writer = new(stream);
|
using BinaryWriter writer = new(stream);
|
||||||
|
|
||||||
writer.Write((ulong)PlayerSelectResult.Success);
|
writer.Write((ulong)PlayerSelectResult.Success);
|
||||||
|
|
||||||
selectedUser.UserId.Write(writer);
|
currentUser.UserId.Write(writer);
|
||||||
|
|
||||||
return stream.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte[] BuildGuestResponse()
|
|
||||||
{
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
|
||||||
using BinaryWriter writer = new(stream);
|
|
||||||
|
|
||||||
writer.Write(new byte());
|
|
||||||
|
|
||||||
return stream.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte[] BuildResponse()
|
|
||||||
{
|
|
||||||
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
|
|
||||||
using BinaryWriter writer = new(stream);
|
|
||||||
|
|
||||||
writer.Write((ulong)PlayerSelectResult.Failure);
|
|
||||||
|
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 7.8 KiB |
@@ -59,7 +59,6 @@
|
|||||||
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_BtnB.png" />
|
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_BtnB.png" />
|
||||||
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_KeyF6.png" />
|
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_KeyF6.png" />
|
||||||
<EmbeddedResource Include="HOS\Services\Account\Acc\DefaultUserImage.jpg" />
|
<EmbeddedResource Include="HOS\Services\Account\Acc\DefaultUserImage.jpg" />
|
||||||
<EmbeddedResource Include="HOS\Services\Account\Acc\GuestUserImage.jpg" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Ryujinx.HLE.HOS.Applets;
|
using Ryujinx.HLE.HOS.Applets;
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
||||||
|
|
||||||
namespace Ryujinx.HLE.UI
|
namespace Ryujinx.HLE.UI
|
||||||
@@ -49,8 +48,7 @@ namespace Ryujinx.HLE.UI
|
|||||||
/// Displays a Message Dialog box specific to Error Applet and blocks until it is closed.
|
/// Displays a Message Dialog box specific to Error Applet and blocks until it is closed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>False when OK is pressed, True when another button (Details) is pressed.</returns>
|
/// <returns>False when OK is pressed, True when another button (Details) is pressed.</returns>
|
||||||
// ReSharper disable once UnusedParameter.Global
|
bool DisplayErrorAppletDialog(string title, string message, string[] buttonsText);
|
||||||
bool DisplayErrorAppletDialog(string title, string message, string[] buttonsText, (uint Module, uint Description)? errorCode = null);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a handler to process keyboard inputs into text strings.
|
/// Creates a handler to process keyboard inputs into text strings.
|
||||||
@@ -67,10 +65,5 @@ namespace Ryujinx.HLE.UI
|
|||||||
/// Takes a screenshot from the current renderer and saves it in the screenshots folder.
|
/// Takes a screenshot from the current renderer and saves it in the screenshots folder.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void TakeScreenshot();
|
void TakeScreenshot();
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Displays the player select dialog and returns the selected profile.
|
|
||||||
/// </summary>
|
|
||||||
UserProfile ShowPlayerSelectDialog();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,9 +34,14 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
public BackendThreading BackendThreading { get; set; }
|
public BackendThreading BackendThreading { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Resolution Scale. A float value containing the resolution scale.
|
/// Resolution Scale. An integer scale applied to applicable render targets. Values 1-4, or -1 to use a custom floating point scale instead.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float ResScale { get; set; }
|
public int ResScale { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom Resolution Scale. A custom floating point scale applied to applicable render targets. Only active when Resolution Scale is -1.
|
||||||
|
/// </summary>
|
||||||
|
public float ResScaleCustom { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Max Anisotropy. Values range from 0 - 16. Set to -1 to let the game decide.
|
/// Max Anisotropy. Values range from 0 - 16. Set to -1 to let the game decide.
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Enables or disables profiled translation cache persistency
|
/// Enables or disables profiled translation cache persistency
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ReactiveObject<bool> EnablePptc { get; private set; }
|
public ReactiveObject<bool> EnablePtc { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Clock tick scalar, in percent points (100 = 1.0).
|
/// Clock tick scalar, in percent points (100 = 1.0).
|
||||||
@@ -350,7 +350,7 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Enables or disables low-power profiled translation cache persistency loading
|
/// Enables or disables low-power profiled translation cache persistency loading
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ReactiveObject<bool> EnableLowPowerPptc { get; private set; }
|
public ReactiveObject<bool> EnableLowPowerPtc { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Enables or disables guest Internet access
|
/// Enables or disables guest Internet access
|
||||||
@@ -418,10 +418,10 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
MatchSystemTime.Event += static (_, e) => LogValueChange(e, nameof(MatchSystemTime));
|
MatchSystemTime.Event += static (_, e) => LogValueChange(e, nameof(MatchSystemTime));
|
||||||
EnableDockedMode = new ReactiveObject<bool>();
|
EnableDockedMode = new ReactiveObject<bool>();
|
||||||
EnableDockedMode.Event += static (_, e) => LogValueChange(e, nameof(EnableDockedMode));
|
EnableDockedMode.Event += static (_, e) => LogValueChange(e, nameof(EnableDockedMode));
|
||||||
EnablePptc = new ReactiveObject<bool>();
|
EnablePtc = new ReactiveObject<bool>();
|
||||||
EnablePptc.Event += static (_, e) => LogValueChange(e, nameof(EnablePptc));
|
EnablePtc.Event += static (_, e) => LogValueChange(e, nameof(EnablePtc));
|
||||||
EnableLowPowerPptc = new ReactiveObject<bool>();
|
EnableLowPowerPtc = new ReactiveObject<bool>();
|
||||||
EnableLowPowerPptc.Event += static (_, e) => LogValueChange(e, nameof(EnableLowPowerPptc));
|
EnableLowPowerPtc.Event += static (_, e) => LogValueChange(e, nameof(EnableLowPowerPtc));
|
||||||
TickScalar = new ReactiveObject<long>();
|
TickScalar = new ReactiveObject<long>();
|
||||||
TickScalar.Event += static (_, e) => LogValueChange(e, nameof(TickScalar));
|
TickScalar.Event += static (_, e) => LogValueChange(e, nameof(TickScalar));
|
||||||
TickScalar.Event += static (_, e) =>
|
TickScalar.Event += static (_, e) =>
|
||||||
@@ -513,9 +513,14 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
public ReactiveObject<AspectRatio> AspectRatio { get; private set; }
|
public ReactiveObject<AspectRatio> AspectRatio { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Resolution Scale. A float value containing the resolution scale.
|
/// Resolution Scale. An integer scale applied to applicable render targets. Values 1-4, or -1 to use a custom floating point scale instead.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ReactiveObject<float> ResScale { get; private set; }
|
public ReactiveObject<int> ResScale { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom Resolution Scale. A custom floating point scale applied to applicable render targets. Only active when Resolution Scale is -1.
|
||||||
|
/// </summary>
|
||||||
|
public ReactiveObject<float> ResScaleCustom { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Directory to save the game shaders.
|
/// Directory to save the game shaders.
|
||||||
@@ -606,8 +611,10 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
{
|
{
|
||||||
BackendThreading = new ReactiveObject<BackendThreading>();
|
BackendThreading = new ReactiveObject<BackendThreading>();
|
||||||
BackendThreading.Event += static (_, e) => LogValueChange(e, nameof(BackendThreading));
|
BackendThreading.Event += static (_, e) => LogValueChange(e, nameof(BackendThreading));
|
||||||
ResScale = new ReactiveObject<float>();
|
ResScale = new ReactiveObject<int>();
|
||||||
ResScale.Event += static (_, e) => LogValueChange(e, nameof(ResScale));
|
ResScale.Event += static (_, e) => LogValueChange(e, nameof(ResScale));
|
||||||
|
ResScaleCustom = new ReactiveObject<float>();
|
||||||
|
ResScaleCustom.Event += static (_, e) => LogValueChange(e, nameof(ResScaleCustom));
|
||||||
MaxAnisotropy = new ReactiveObject<float>();
|
MaxAnisotropy = new ReactiveObject<float>();
|
||||||
MaxAnisotropy.Event += static (_, e) => LogValueChange(e, nameof(MaxAnisotropy));
|
MaxAnisotropy.Event += static (_, e) => LogValueChange(e, nameof(MaxAnisotropy));
|
||||||
AspectRatio = new ReactiveObject<AspectRatio>();
|
AspectRatio = new ReactiveObject<AspectRatio>();
|
||||||
@@ -817,6 +824,7 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
BackendThreading = Graphics.BackendThreading,
|
BackendThreading = Graphics.BackendThreading,
|
||||||
EnableFileLog = Logger.EnableFileLog,
|
EnableFileLog = Logger.EnableFileLog,
|
||||||
ResScale = Graphics.ResScale,
|
ResScale = Graphics.ResScale,
|
||||||
|
ResScaleCustom = Graphics.ResScaleCustom,
|
||||||
MaxAnisotropy = Graphics.MaxAnisotropy,
|
MaxAnisotropy = Graphics.MaxAnisotropy,
|
||||||
AspectRatio = Graphics.AspectRatio,
|
AspectRatio = Graphics.AspectRatio,
|
||||||
AntiAliasing = Graphics.AntiAliasing,
|
AntiAliasing = Graphics.AntiAliasing,
|
||||||
@@ -856,8 +864,8 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
EnableTextureRecompression = Graphics.EnableTextureRecompression,
|
EnableTextureRecompression = Graphics.EnableTextureRecompression,
|
||||||
EnableMacroHLE = Graphics.EnableMacroHLE,
|
EnableMacroHLE = Graphics.EnableMacroHLE,
|
||||||
EnableColorSpacePassthrough = Graphics.EnableColorSpacePassthrough,
|
EnableColorSpacePassthrough = Graphics.EnableColorSpacePassthrough,
|
||||||
EnablePtc = System.EnablePptc,
|
EnablePtc = System.EnablePtc,
|
||||||
EnableLowPowerPtc = System.EnableLowPowerPptc,
|
EnableLowPowerPtc = System.EnableLowPowerPtc,
|
||||||
TickScalar = System.TickScalar,
|
TickScalar = System.TickScalar,
|
||||||
EnableInternetAccess = System.EnableInternetAccess,
|
EnableInternetAccess = System.EnableInternetAccess,
|
||||||
EnableFsIntegrityChecks = System.EnableFsIntegrityChecks,
|
EnableFsIntegrityChecks = System.EnableFsIntegrityChecks,
|
||||||
@@ -945,7 +953,8 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
{
|
{
|
||||||
Logger.EnableFileLog.Value = true;
|
Logger.EnableFileLog.Value = true;
|
||||||
Graphics.BackendThreading.Value = BackendThreading.Auto;
|
Graphics.BackendThreading.Value = BackendThreading.Auto;
|
||||||
Graphics.ResScale.Value = 1.0f;
|
Graphics.ResScale.Value = 1;
|
||||||
|
Graphics.ResScaleCustom.Value = 1.0f;
|
||||||
Graphics.MaxAnisotropy.Value = -1.0f;
|
Graphics.MaxAnisotropy.Value = -1.0f;
|
||||||
Graphics.AspectRatio.Value = AspectRatio.Fixed16x9;
|
Graphics.AspectRatio.Value = AspectRatio.Fixed16x9;
|
||||||
Graphics.GraphicsBackend.Value = DefaultGraphicsBackend();
|
Graphics.GraphicsBackend.Value = DefaultGraphicsBackend();
|
||||||
@@ -986,7 +995,7 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
Graphics.AntiAliasing.Value = AntiAliasing.None;
|
Graphics.AntiAliasing.Value = AntiAliasing.None;
|
||||||
Graphics.ScalingFilter.Value = ScalingFilter.Bilinear;
|
Graphics.ScalingFilter.Value = ScalingFilter.Bilinear;
|
||||||
Graphics.ScalingFilterLevel.Value = 80;
|
Graphics.ScalingFilterLevel.Value = 80;
|
||||||
System.EnablePptc.Value = true;
|
System.EnablePtc.Value = true;
|
||||||
System.EnableInternetAccess.Value = false;
|
System.EnableInternetAccess.Value = false;
|
||||||
System.EnableFsIntegrityChecks.Value = true;
|
System.EnableFsIntegrityChecks.Value = true;
|
||||||
System.FsGlobalAccessLogMode.Value = 0;
|
System.FsGlobalAccessLogMode.Value = 0;
|
||||||
@@ -1199,7 +1208,8 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
{
|
{
|
||||||
Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 11.");
|
Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 11.");
|
||||||
|
|
||||||
configurationFileFormat.ResScale = 1.0f;
|
configurationFileFormat.ResScale = 1;
|
||||||
|
configurationFileFormat.ResScaleCustom = 1.0f;
|
||||||
|
|
||||||
configurationFileUpdated = true;
|
configurationFileUpdated = true;
|
||||||
}
|
}
|
||||||
@@ -1798,6 +1808,7 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
|
|
||||||
Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog;
|
Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog;
|
||||||
Graphics.ResScale.Value = configurationFileFormat.ResScale;
|
Graphics.ResScale.Value = configurationFileFormat.ResScale;
|
||||||
|
Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom;
|
||||||
Graphics.MaxAnisotropy.Value = configurationFileFormat.MaxAnisotropy;
|
Graphics.MaxAnisotropy.Value = configurationFileFormat.MaxAnisotropy;
|
||||||
Graphics.AspectRatio.Value = configurationFileFormat.AspectRatio;
|
Graphics.AspectRatio.Value = configurationFileFormat.AspectRatio;
|
||||||
Graphics.ShadersDumpPath.Value = configurationFileFormat.GraphicsShadersDumpPath;
|
Graphics.ShadersDumpPath.Value = configurationFileFormat.GraphicsShadersDumpPath;
|
||||||
@@ -1840,8 +1851,8 @@ namespace Ryujinx.UI.Common.Configuration
|
|||||||
Graphics.EnableTextureRecompression.Value = configurationFileFormat.EnableTextureRecompression;
|
Graphics.EnableTextureRecompression.Value = configurationFileFormat.EnableTextureRecompression;
|
||||||
Graphics.EnableMacroHLE.Value = configurationFileFormat.EnableMacroHLE;
|
Graphics.EnableMacroHLE.Value = configurationFileFormat.EnableMacroHLE;
|
||||||
Graphics.EnableColorSpacePassthrough.Value = configurationFileFormat.EnableColorSpacePassthrough;
|
Graphics.EnableColorSpacePassthrough.Value = configurationFileFormat.EnableColorSpacePassthrough;
|
||||||
System.EnablePptc.Value = configurationFileFormat.EnablePtc;
|
System.EnablePtc.Value = configurationFileFormat.EnablePtc;
|
||||||
System.EnableLowPowerPptc.Value = configurationFileFormat.EnableLowPowerPtc;
|
System.EnableLowPowerPtc.Value = configurationFileFormat.EnableLowPowerPtc;
|
||||||
System.TickScalar.Value = configurationFileFormat.TickScalar;
|
System.TickScalar.Value = configurationFileFormat.TickScalar;
|
||||||
System.EnableInternetAccess.Value = configurationFileFormat.EnableInternetAccess;
|
System.EnableInternetAccess.Value = configurationFileFormat.EnableInternetAccess;
|
||||||
System.EnableFsIntegrityChecks.Value = configurationFileFormat.EnableFsIntegrityChecks;
|
System.EnableFsIntegrityChecks.Value = configurationFileFormat.EnableFsIntegrityChecks;
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
using Ryujinx.UI.Common.Models;
|
|
||||||
using System.Text.Json.Serialization;
|
|
||||||
|
|
||||||
namespace Ryujinx.Common.Configuration
|
|
||||||
{
|
|
||||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
|
||||||
[JsonSerializable(typeof(CustomSettingsModel))]
|
|
||||||
public partial class CustomSettingsMetadataJsonSerializerContext : JsonSerializerContext
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
using Ryujinx.Common.Configuration;
|
|
||||||
using Ryujinx.Common.Logging;
|
|
||||||
using Ryujinx.Common.Utilities;
|
|
||||||
using Ryujinx.HLE;
|
|
||||||
using Ryujinx.UI.Common.Configuration;
|
|
||||||
using Ryujinx.UI.Common.Configuration.System;
|
|
||||||
using System.IO;
|
|
||||||
using CustomSettingsModel = Ryujinx.UI.Common.Models.CustomSettingsModel;
|
|
||||||
using Path = System.IO.Path;
|
|
||||||
|
|
||||||
namespace Ryujinx.UI.Common.Helper
|
|
||||||
{
|
|
||||||
public static class CustomSettingsHelper
|
|
||||||
{
|
|
||||||
private static readonly CustomSettingsMetadataJsonSerializerContext _serializerContext = new(JsonHelper.GetDefaultSerializerOptions());
|
|
||||||
|
|
||||||
public static CustomSettingsModel LoadCustomSettingsJson(string customSettingsJsonPath)
|
|
||||||
{
|
|
||||||
var customSettingsModel = new CustomSettingsModel();
|
|
||||||
|
|
||||||
if (!File.Exists(customSettingsJsonPath))
|
|
||||||
{
|
|
||||||
return customSettingsModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Logger.Info?.Print(LogClass.Configuration, $"Found custom settings data for application at {customSettingsJsonPath}");
|
|
||||||
customSettingsModel = JsonHelper.DeserializeFromFile(customSettingsJsonPath, _serializerContext.CustomSettingsModel);
|
|
||||||
return customSettingsModel;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
Logger.Error?.Print(LogClass.Configuration, $"Failed to deserialize custom settings data for application at {customSettingsJsonPath}");
|
|
||||||
return customSettingsModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SaveCustomSettingsJson(string customSettingsJsonPath, CustomSettingsModel customSettingsModel)
|
|
||||||
{
|
|
||||||
if (!File.Exists(customSettingsJsonPath))
|
|
||||||
{
|
|
||||||
string directoryPath = Path.GetDirectoryName(customSettingsJsonPath);
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(directoryPath))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(directoryPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JsonHelper.SerializeToFile(customSettingsJsonPath, customSettingsModel, _serializerContext.CustomSettingsModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool HasCustomSettings(string customSettingsJsonPath)
|
|
||||||
{
|
|
||||||
return File.Exists(customSettingsJsonPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void DeleteCustomSettings(string customSettingsJsonPath)
|
|
||||||
{
|
|
||||||
FileInfo file = new(customSettingsJsonPath);
|
|
||||||
|
|
||||||
if (file.Exists)
|
|
||||||
{
|
|
||||||
file.Delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void OverrideSettings(CustomSettingsModel customSettingsModel)
|
|
||||||
{
|
|
||||||
ConfigurationState.Instance.System.EnableDockedMode.Value = customSettingsModel.EnableDockedMode;
|
|
||||||
ConfigurationState.Instance.System.Language.Value = (Language)customSettingsModel.SystemLanguage;
|
|
||||||
ConfigurationState.Instance.System.Region.Value = (Region)customSettingsModel.SystemRegion;
|
|
||||||
ConfigurationState.Instance.Graphics.VSyncMode.Value = (VSyncMode)customSettingsModel.VSyncMode;
|
|
||||||
ConfigurationState.Instance.System.DramSize.Value = (MemoryConfiguration)customSettingsModel.DramSize;
|
|
||||||
ConfigurationState.Instance.System.EnableFsIntegrityChecks.Value = customSettingsModel.EnableFsIntegrityChecks;
|
|
||||||
ConfigurationState.Instance.System.IgnoreMissingServices.Value = customSettingsModel.IgnoreMissingServices;
|
|
||||||
ConfigurationState.Instance.System.EnableLowPowerPptc.Value = customSettingsModel.EnableLowPowerPptc;
|
|
||||||
ConfigurationState.Instance.System.MemoryManagerMode.Value = (MemoryManagerMode)customSettingsModel.MemoryManagerMode;
|
|
||||||
ConfigurationState.Instance.System.UseHypervisor.Value = customSettingsModel.UseHypervisor;
|
|
||||||
ConfigurationState.Instance.System.TickScalar.Value = customSettingsModel.TickScalar;
|
|
||||||
ConfigurationState.Instance.System.AudioBackend.Value = customSettingsModel.AudioBackend;
|
|
||||||
ConfigurationState.Instance.System.AudioVolume.Value = customSettingsModel.AudioVolume;
|
|
||||||
ConfigurationState.Instance.Graphics.GraphicsBackend.Value = (GraphicsBackend)customSettingsModel.GraphicsBackend;
|
|
||||||
ConfigurationState.Instance.Graphics.PreferredGpu.Value = customSettingsModel.PreferredGpu;
|
|
||||||
ConfigurationState.Instance.Graphics.EnableShaderCache.Value = customSettingsModel.EnableShaderCache;
|
|
||||||
ConfigurationState.Instance.Graphics.EnableTextureRecompression.Value = customSettingsModel.EnableTextureRecompression;
|
|
||||||
ConfigurationState.Instance.Graphics.EnableMacroHLE.Value = customSettingsModel.EnableMacroHLE;
|
|
||||||
ConfigurationState.Instance.Graphics.EnableColorSpacePassthrough.Value = customSettingsModel.EnableColorSpacePassthrough;
|
|
||||||
ConfigurationState.Instance.Graphics.ResScale.Value = customSettingsModel.ResScale;
|
|
||||||
ConfigurationState.Instance.Graphics.MaxAnisotropy.Value = customSettingsModel.MaxAnisotropy;
|
|
||||||
ConfigurationState.Instance.Graphics.BackendThreading.Value = (BackendThreading)customSettingsModel.BackendThreading;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string PathToGameSettingsJson(ulong applicationIdBase)
|
|
||||||
{
|
|
||||||
return Path.Combine(AppDataManager.GamesDirPath, applicationIdBase.ToString("x16"), "settings.json");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -31,13 +31,13 @@ namespace Ryujinx.UI.Common.Helper
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Logger.Info?.Print(LogClass.Configuration, $"Found downloadable content data for {applicationIdBase:x16} at {downloadableContentJsonPath}");
|
List<DownloadableContentContainer> downloadableContentContainerList = JsonHelper.DeserializeFromFile(downloadableContentJsonPath,
|
||||||
List<DownloadableContentContainer> downloadableContentContainerList = JsonHelper.DeserializeFromFile(downloadableContentJsonPath,_serializerContext.ListDownloadableContentContainer);
|
_serializerContext.ListDownloadableContentContainer);
|
||||||
return LoadDownloadableContents(vfs, downloadableContentContainerList);
|
return LoadDownloadableContents(vfs, downloadableContentContainerList);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Logger.Error?.Print(LogClass.Configuration, $"Failed to deserialize downloadable content data for {applicationIdBase:x16} at {downloadableContentJsonPath}");
|
Logger.Error?.Print(LogClass.Configuration, "Downloadable Content JSON failed to deserialize.");
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,13 +39,12 @@ namespace Ryujinx.UI.Common.Helper
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Logger.Info?.Print(LogClass.Application, $"Found title updates data for {applicationIdBase:x16} at {titleUpdatesJsonPath}");
|
|
||||||
TitleUpdateMetadata titleUpdateWindowData = JsonHelper.DeserializeFromFile(titleUpdatesJsonPath, _serializerContext.TitleUpdateMetadata);
|
TitleUpdateMetadata titleUpdateWindowData = JsonHelper.DeserializeFromFile(titleUpdatesJsonPath, _serializerContext.TitleUpdateMetadata);
|
||||||
return LoadTitleUpdates(vfs, titleUpdateWindowData, applicationIdBase);
|
return LoadTitleUpdates(vfs, titleUpdateWindowData, applicationIdBase);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Logger.Error?.Print(LogClass.Application, $"Failed to deserialize title updates data for {applicationIdBase:x16} at {titleUpdatesJsonPath}");
|
Logger.Warning?.Print(LogClass.Application, $"Failed to deserialize title update data for {applicationIdBase:x16} at {titleUpdatesJsonPath}");
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
using Ryujinx.Common.Configuration;
|
|
||||||
using Ryujinx.HLE;
|
|
||||||
using Ryujinx.UI.Common.Configuration;
|
|
||||||
|
|
||||||
namespace Ryujinx.UI.Common.Models
|
|
||||||
{
|
|
||||||
// NOTE: most consuming code relies on this model being value-comparable
|
|
||||||
public record CustomSettingsModel()
|
|
||||||
{
|
|
||||||
public bool HasCustomSettings { get; set; }
|
|
||||||
public bool EnableDockedMode { get; set; }
|
|
||||||
public int SystemLanguage { get; set; }
|
|
||||||
public int SystemRegion { get; set; }
|
|
||||||
public int VSyncMode { get; set; }
|
|
||||||
public int DramSize { get; set; }
|
|
||||||
public bool EnableFsIntegrityChecks { get; set; }
|
|
||||||
public bool IgnoreMissingServices { get; set; }
|
|
||||||
public bool EnablePptc { get; set; }
|
|
||||||
public bool EnableLowPowerPptc { get; set; }
|
|
||||||
public int MemoryManagerMode { get; set; }
|
|
||||||
public bool UseHypervisor { get; set; }
|
|
||||||
public long TickScalar { get; set; }
|
|
||||||
public int GraphicsBackend { get; set; }
|
|
||||||
public string PreferredGpu { get; set; }
|
|
||||||
public bool EnableShaderCache { get; set; }
|
|
||||||
public bool EnableTextureRecompression { get; set; }
|
|
||||||
public bool EnableMacroHLE { get; set; }
|
|
||||||
public bool EnableColorSpacePassthrough { get; set; }
|
|
||||||
public float ResScale { get; set; }
|
|
||||||
public float MaxAnisotropy { get; set; }
|
|
||||||
public int BackendThreading { get; set; }
|
|
||||||
public AudioBackend AudioBackend { get; set; }
|
|
||||||
public float AudioVolume { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+8
-20
@@ -43,7 +43,6 @@ using Ryujinx.UI.App.Common;
|
|||||||
using Ryujinx.UI.Common;
|
using Ryujinx.UI.Common;
|
||||||
using Ryujinx.UI.Common.Configuration;
|
using Ryujinx.UI.Common.Configuration;
|
||||||
using Ryujinx.UI.Common.Helper;
|
using Ryujinx.UI.Common.Helper;
|
||||||
using Ryujinx.UI.Common.Models;
|
|
||||||
using Silk.NET.Vulkan;
|
using Silk.NET.Vulkan;
|
||||||
using SkiaSharp;
|
using SkiaSharp;
|
||||||
using SPB.Graphics.Exceptions;
|
using SPB.Graphics.Exceptions;
|
||||||
@@ -85,7 +84,6 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
private readonly AccountManager _accountManager;
|
private readonly AccountManager _accountManager;
|
||||||
private readonly UserChannelPersistence _userChannelPersistence;
|
private readonly UserChannelPersistence _userChannelPersistence;
|
||||||
private readonly CustomSettingsModel _customSettingsModel;
|
|
||||||
private readonly InputManager _inputManager;
|
private readonly InputManager _inputManager;
|
||||||
|
|
||||||
private readonly MainWindowViewModel _viewModel;
|
private readonly MainWindowViewModel _viewModel;
|
||||||
@@ -183,12 +181,6 @@ namespace Ryujinx.Ava
|
|||||||
_chrono = new Stopwatch();
|
_chrono = new Stopwatch();
|
||||||
_ticksPerFrame = Stopwatch.Frequency / TargetFps;
|
_ticksPerFrame = Stopwatch.Frequency / TargetFps;
|
||||||
|
|
||||||
if (CustomSettingsHelper.HasCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(applicationId)))
|
|
||||||
{
|
|
||||||
CustomSettingsModel customSettings = CustomSettingsHelper.LoadCustomSettingsJson(CustomSettingsHelper.PathToGameSettingsJson(applicationId));
|
|
||||||
CustomSettingsHelper.OverrideSettings(customSettings);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ApplicationPath.StartsWith("@SystemContent"))
|
if (ApplicationPath.StartsWith("@SystemContent"))
|
||||||
{
|
{
|
||||||
ApplicationPath = VirtualFileSystem.SwitchPathToSystemPath(ApplicationPath);
|
ApplicationPath = VirtualFileSystem.SwitchPathToSystemPath(ApplicationPath);
|
||||||
@@ -484,7 +476,7 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
ARMeilleure.Optimizations.EcoFriendly = ConfigurationState.Instance.System.EnableLowPowerPptc;
|
ARMeilleure.Optimizations.EcoFriendly = ConfigurationState.Instance.System.EnableLowPowerPtc;
|
||||||
|
|
||||||
if (OperatingSystem.IsWindows())
|
if (OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
@@ -624,12 +616,6 @@ namespace Ryujinx.Ava
|
|||||||
_gpuCancellationTokenSource.Dispose();
|
_gpuCancellationTokenSource.Dispose();
|
||||||
|
|
||||||
DisposeGpu();
|
DisposeGpu();
|
||||||
|
|
||||||
if (CustomSettingsHelper.HasCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(ApplicationId)))
|
|
||||||
{
|
|
||||||
Program.ReloadConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
AppExit?.Invoke(this, EventArgs.Empty);
|
AppExit?.Invoke(this, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -973,23 +959,23 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
Logger.Info?.PrintMsg(LogClass.Gpu, $"Backend Threading ({threadingMode}): {isGALThreaded}");
|
Logger.Info?.PrintMsg(LogClass.Gpu, $"Backend Threading ({threadingMode}): {isGALThreaded}");
|
||||||
|
|
||||||
CustomSettingsModel customSettingsModel = CustomSettingsHelper.LoadCustomSettingsJson(CustomSettingsHelper.PathToGameSettingsJson(ApplicationId));
|
// Initialize Configuration.
|
||||||
|
MemoryConfiguration memoryConfiguration = ConfigurationState.Instance.System.DramSize.Value;
|
||||||
|
|
||||||
HLEConfiguration configuration = new(
|
HLEConfiguration configuration = new(VirtualFileSystem,
|
||||||
VirtualFileSystem,
|
|
||||||
_viewModel.LibHacHorizonManager,
|
_viewModel.LibHacHorizonManager,
|
||||||
ContentManager,
|
ContentManager,
|
||||||
_accountManager,
|
_accountManager,
|
||||||
_userChannelPersistence,
|
_userChannelPersistence,
|
||||||
renderer,
|
renderer,
|
||||||
InitializeAudio(),
|
InitializeAudio(),
|
||||||
customSettingsModel.HasCustomSettings ? (MemoryConfiguration)customSettingsModel.DramSize : ConfigurationState.Instance.System.DramSize.Value,
|
memoryConfiguration,
|
||||||
_viewModel.UiHandler,
|
_viewModel.UiHandler,
|
||||||
(SystemLanguage)ConfigurationState.Instance.System.Language.Value,
|
(SystemLanguage)ConfigurationState.Instance.System.Language.Value,
|
||||||
(RegionCode)ConfigurationState.Instance.System.Region.Value,
|
(RegionCode)ConfigurationState.Instance.System.Region.Value,
|
||||||
ConfigurationState.Instance.Graphics.VSyncMode,
|
ConfigurationState.Instance.Graphics.VSyncMode,
|
||||||
ConfigurationState.Instance.System.EnableDockedMode,
|
ConfigurationState.Instance.System.EnableDockedMode,
|
||||||
ConfigurationState.Instance.System.EnablePptc,
|
ConfigurationState.Instance.System.EnablePtc,
|
||||||
ConfigurationState.Instance.System.TickScalar,
|
ConfigurationState.Instance.System.TickScalar,
|
||||||
ConfigurationState.Instance.System.EnableInternetAccess,
|
ConfigurationState.Instance.System.EnableInternetAccess,
|
||||||
ConfigurationState.Instance.System.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None,
|
ConfigurationState.Instance.System.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None,
|
||||||
@@ -1078,6 +1064,8 @@ namespace Ryujinx.Ava
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MainWindowViewModel.SaveConfig();
|
||||||
|
|
||||||
return deviceDriver;
|
return deviceDriver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "يفتح نافذة إدارة تحديث اللُعبة",
|
"GameListContextMenuManageTitleUpdatesToolTip": "يفتح نافذة إدارة تحديث اللُعبة",
|
||||||
"GameListContextMenuManageDlc": "إدارة المحتوي الإضافي",
|
"GameListContextMenuManageDlc": "إدارة المحتوي الإضافي",
|
||||||
"GameListContextMenuManageDlcToolTip": "يفتح نافذة إدارة المحتوي الإضافي",
|
"GameListContextMenuManageDlcToolTip": "يفتح نافذة إدارة المحتوي الإضافي",
|
||||||
"GameListContextMenuManageCustomSettings": "إدارة ملف الإعدادات المخصصة",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "إدارة الإعدادات المخصصة للتطبيق المحدد",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "فتح دليل الإعدادات المخصصة",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "فتح الدليل الذي يحتوي على الإعدادات المخصصة للتطبيق",
|
|
||||||
"GameListContextMenuCacheManagement": "إدارة ذاكرة التخزين المؤقت",
|
"GameListContextMenuCacheManagement": "إدارة ذاكرة التخزين المؤقت",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "قائمة انتظار إعادة بناء الـPPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "قائمة انتظار إعادة بناء الـPPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "تنشيط PPTC لإعادة البناء في وقت الإقلاع عند بدء تشغيل اللعبة التالي",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "تنشيط PPTC لإعادة البناء في وقت الإقلاع عند بدء تشغيل اللعبة التالي",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "مقياس الدقة",
|
"SettingsTabGraphicsResolutionScale": "مقياس الدقة",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "مخصص (لا ينصح به)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "الأصل (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (لا ينصح به)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "نسبة الارتفاع إلى العرض:",
|
"SettingsTabGraphicsAspectRatio": "نسبة الارتفاع إلى العرض:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "الكل",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "الكل",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "تمكين سجلات التصحيح",
|
"SettingsTabLoggingEnableDebugLogs": "تمكين سجلات التصحيح",
|
||||||
"SettingsTabInput": "الإدخال",
|
"SettingsTabInput": "الإدخال",
|
||||||
"SettingsTabSystemEnableDockedMode": "تركيب بالمنصة",
|
"SettingsTabInputEnableDockedMode": "تركيب بالمنصة",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "الوصول المباشر للوحة المفاتيح",
|
"SettingsTabInputDirectKeyboardAccess": "الوصول المباشر للوحة المفاتيح",
|
||||||
"SettingsButtonDelete": "حذف",
|
|
||||||
"SettingsButtonSave": "حفظ",
|
"SettingsButtonSave": "حفظ",
|
||||||
"SettingsButtonClose": "إغلاق",
|
"SettingsButtonClose": "إغلاق",
|
||||||
"SettingsButtonOk": "موافق",
|
"SettingsButtonOk": "موافق",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "حذف الملف الشخصي",
|
"DialogProfileDeleteProfileTitle": "حذف الملف الشخصي",
|
||||||
"DialogProfileDeleteProfileMessage": "هذا الإجراء لا رجعة فيه، هل أنت متأكد من أنك تريد المتابعة؟",
|
"DialogProfileDeleteProfileMessage": "هذا الإجراء لا رجعة فيه، هل أنت متأكد من أنك تريد المتابعة؟",
|
||||||
"DialogWarning": "تحذير",
|
"DialogWarning": "تحذير",
|
||||||
"DialogCustomSettingsDeleteMessage": "أنت على وشك حذف الإعدادات المخصصة لـ:\n\n{0}\n\nهل أنت متأكد من أنك تريد المتابعة؟",
|
|
||||||
"DialogPPTCDeletionMessage": "أنت على وشك الإنتظار لإعادة بناء ذاكرة التخزين المؤقت للترجمة المستمرة (PPTC) عند الإقلاع التالي لـ:\n\n{0}\n\nأمتأكد من رغبتك في المتابعة؟",
|
"DialogPPTCDeletionMessage": "أنت على وشك الإنتظار لإعادة بناء ذاكرة التخزين المؤقت للترجمة المستمرة (PPTC) عند الإقلاع التالي لـ:\n\n{0}\n\nأمتأكد من رغبتك في المتابعة؟",
|
||||||
"DialogPPTCDeletionErrorMessage": "خطأ خلال تنظيف ذاكرة التخزين المؤقت للترجمة المستمرة (PPTC) في {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "خطأ خلال تنظيف ذاكرة التخزين المؤقت للترجمة المستمرة (PPTC) في {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "أنت على وشك حذف جميع بيانات PPTC من:\n\n{0}\n\nهل أنت متأكد من أنك تريد المتابعة؟",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "أنت على وشك حذف ذاكرة المظللات المؤقتة ل:\n\n{0}\n\nهل انت متأكد انك تريد المتابعة؟",
|
"DialogShaderDeletionMessage": "أنت على وشك حذف ذاكرة المظللات المؤقتة ل:\n\n{0}\n\nهل انت متأكد انك تريد المتابعة؟",
|
||||||
"DialogShaderDeletionErrorMessage": "حدث خطأ أثناء تنظيف ذاكرة المظللات المؤقتة في {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "حدث خطأ أثناء تنظيف ذاكرة المظللات المؤقتة في {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "واجه ريوجينكس خطأ",
|
"DialogRyujinxErrorMessage": "واجه ريوجينكس خطأ",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "الرجاء إيقاف المحاكاة أو إغلاق المحاكي قبل بدء لعبة أخرى.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "الرجاء إيقاف المحاكاة أو إغلاق المحاكي قبل بدء لعبة أخرى.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "الملف المحدد لا يحتوي على تحديث للعنوان المحدد!",
|
"DialogUpdateAddUpdateErrorMessage": "الملف المحدد لا يحتوي على تحديث للعنوان المحدد!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "تحذير - خلفية متعددة المسارات",
|
"DialogSettingsBackendThreadingWarningTitle": "تحذير - خلفية متعددة المسارات",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "يجب إعادة تشغيل ريوجينكس بعد تغيير هذا الخيار حتى يتم تطبيقه بالكامل. اعتمادا على النظام الأساسي الخاص بك، قد تحتاج إلى تعطيل تعدد المسارات الخاص ببرنامج الرسومات التشغيل الخاص بك يدويًا عند استخدام الخاص بريوجينكس.",
|
||||||
"DialogModManagerDeletionWarningMessage": "أنت على وشك حذف التعديل: {0}\n\nهل انت متأكد انك تريد المتابعة؟",
|
"DialogModManagerDeletionWarningMessage": "أنت على وشك حذف التعديل: {0}\n\nهل انت متأكد انك تريد المتابعة؟",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "أنت على وشك حذف كافة التعديلات لهذا العنوان.\n\nهل انت متأكد انك تريد المتابعة؟",
|
"DialogModManagerDeletionAllWarningMessage": "أنت على وشك حذف كافة التعديلات لهذا العنوان.\n\nهل انت متأكد انك تريد المتابعة؟",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "المميزات",
|
"SettingsTabGraphicsFeaturesOptions": "المميزات",
|
||||||
|
|||||||
@@ -67,10 +67,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Öffnet den Spiel-Update-Manager",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Öffnet den Spiel-Update-Manager",
|
||||||
"GameListContextMenuManageDlc": "Verwalten von DLC",
|
"GameListContextMenuManageDlc": "Verwalten von DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Öffnet den DLC-Manager",
|
"GameListContextMenuManageDlcToolTip": "Öffnet den DLC-Manager",
|
||||||
"GameListContextMenuManageCustomSettings": "Benutzerdefinierte Einstellungsdatei verwalten",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Verwalten Sie die benutzerdefinierten Einstellungen für die ausgewählte Anwendung",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Verzeichnis der benutzerdefinierten Einstellungen öffnen",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Öffnen Sie das Verzeichnis, das die benutzerdefinierten Einstellungen der Anwendung enthält",
|
|
||||||
"GameListContextMenuCacheManagement": "Cache-Verwaltung",
|
"GameListContextMenuCacheManagement": "Cache-Verwaltung",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "PPTC als ungültig markieren",
|
"GameListContextMenuCacheManagementPurgePptc": "PPTC als ungültig markieren",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Markiert den PPTC als ungültig, sodass dieser beim nächsten Spielstart neu erstellt wird",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Markiert den PPTC als ungültig, sodass dieser beim nächsten Spielstart neu erstellt wird",
|
||||||
@@ -177,12 +173,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Auflösungsskalierung:",
|
"SettingsTabGraphicsResolutionScale": "Auflösungsskalierung:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Benutzerdefiniert (nicht empfohlen)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Nativ (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Nicht empfohlen)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Bildseitenverhältnis:",
|
"SettingsTabGraphicsAspectRatio": "Bildseitenverhältnis:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -213,9 +208,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Alle",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Alle",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Aktiviere Debug-Log",
|
"SettingsTabLoggingEnableDebugLogs": "Aktiviere Debug-Log",
|
||||||
"SettingsTabInput": "Eingabe",
|
"SettingsTabInput": "Eingabe",
|
||||||
"SettingsTabSystemEnableDockedMode": "Angedockter Modus",
|
"SettingsTabInputEnableDockedMode": "Angedockter Modus",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Direkter Tastaturzugriff",
|
"SettingsTabInputDirectKeyboardAccess": "Direkter Tastaturzugriff",
|
||||||
"SettingsButtonDelete": "Löschen",
|
|
||||||
"SettingsButtonSave": "Speichern",
|
"SettingsButtonSave": "Speichern",
|
||||||
"SettingsButtonClose": "Schließen",
|
"SettingsButtonClose": "Schließen",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -494,10 +488,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Profil löschen",
|
"DialogProfileDeleteProfileTitle": "Profil löschen",
|
||||||
"DialogProfileDeleteProfileMessage": "Diese Aktion kann nicht rückgängig gemacht werden. Wirklich fortfahren?",
|
"DialogProfileDeleteProfileMessage": "Diese Aktion kann nicht rückgängig gemacht werden. Wirklich fortfahren?",
|
||||||
"DialogWarning": "Warnung",
|
"DialogWarning": "Warnung",
|
||||||
"DialogCustomSettingsDeleteMessage": "Sie sind dabei, benutzerdefinierte Einstellungen zu löschen für:\n\n{0}\n\nSind Sie sicher, dass Sie fortfahren möchten?",
|
|
||||||
"DialogPPTCDeletionMessage": "Du bist dabei den PPTC für das folgende Spiel als ungültig zu markieren:\n\n{0}\n\nWirklich fortfahren?",
|
"DialogPPTCDeletionMessage": "Du bist dabei den PPTC für das folgende Spiel als ungültig zu markieren:\n\n{0}\n\nWirklich fortfahren?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Fehler bei der Löschung des PPTC Caches bei {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Fehler bei der Löschung des PPTC Caches bei {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Sie sind dabei, alle PPTC-Daten zu löschen von:\n\n{0}\n\nSind Sie sicher, dass Sie fortfahren möchten?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Du bist dabei, den Shader Cache zu löschen für :\n\n{0}\n\nWirklich fortfahren?",
|
"DialogShaderDeletionMessage": "Du bist dabei, den Shader Cache zu löschen für :\n\n{0}\n\nWirklich fortfahren?",
|
||||||
"DialogShaderDeletionErrorMessage": "Es ist ein Fehler bei der Löschung des Shader Caches bei {0}: {1} aufgetreten",
|
"DialogShaderDeletionErrorMessage": "Es ist ein Fehler bei der Löschung des Shader Caches bei {0}: {1} aufgetreten",
|
||||||
"DialogRyujinxErrorMessage": "Ein Fehler ist aufgetreten",
|
"DialogRyujinxErrorMessage": "Ein Fehler ist aufgetreten",
|
||||||
@@ -536,6 +529,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Bitte beende die Emulation oder schließe den Emulator, vor dem Starten eines neuen Spiels",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Bitte beende die Emulation oder schließe den Emulator, vor dem Starten eines neuen Spiels",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Die angegebene Datei enthält keine Updates für den ausgewählten Titel!",
|
"DialogUpdateAddUpdateErrorMessage": "Die angegebene Datei enthält keine Updates für den ausgewählten Titel!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Warnung - Render Threading",
|
"DialogSettingsBackendThreadingWarningTitle": "Warnung - Render Threading",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx muss muss neu gestartet werden, damit die Änderungen wirksam werden. Abhängig von dem Betriebssystem muss möglicherweise das Multithreading des Treibers manuell deaktiviert werden, wenn Ryujinx verwendet wird.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Du bist dabei, diesen Mod zu lösche. {0}\n\nMöchtest du wirklich fortfahren?",
|
"DialogModManagerDeletionWarningMessage": "Du bist dabei, diesen Mod zu lösche. {0}\n\nMöchtest du wirklich fortfahren?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Du bist dabei, alle Mods für diesen Titel zu löschen.\n\nMöchtest du wirklich fortfahren?",
|
"DialogModManagerDeletionAllWarningMessage": "Du bist dabei, alle Mods für diesen Titel zu löschen.\n\nMöchtest du wirklich fortfahren?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Erweiterungen",
|
"SettingsTabGraphicsFeaturesOptions": "Erweiterungen",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Ανοίγει το παράθυρο διαχείρισης Ενημερώσεων Παιχνιδιού",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Ανοίγει το παράθυρο διαχείρισης Ενημερώσεων Παιχνιδιού",
|
||||||
"GameListContextMenuManageDlc": "Διαχείριση DLC",
|
"GameListContextMenuManageDlc": "Διαχείριση DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Ανοίγει το παράθυρο διαχείρισης DLC",
|
"GameListContextMenuManageDlcToolTip": "Ανοίγει το παράθυρο διαχείρισης DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Διαχείριση Αρχείου Προσαρμοσμένων Ρυθμίσεων",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Διαχειριστείτε τις προσαρμοσμένες ρυθμίσεις για την επιλεγμένη Εφαρμογή",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Άνοιγμα Καταλόγου Προσαρμοσμένων Ρυθμίσεων",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Ανοίξτε τον κατάλογο που περιέχει τις προσαρμοσμένες ρυθμίσεις της Εφαρμογής",
|
|
||||||
"GameListContextMenuCacheManagement": "Διαχείριση Προσωρινής Μνήμης",
|
"GameListContextMenuCacheManagement": "Διαχείριση Προσωρινής Μνήμης",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Εκκαθάριση Προσωρινής Μνήμης PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Εκκαθάριση Προσωρινής Μνήμης PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Διαγράφει την προσωρινή μνήμη PPTC της εφαρμογής",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Διαγράφει την προσωρινή μνήμη PPTC της εφαρμογής",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Κλίμακα Ανάλυσης:",
|
"SettingsTabGraphicsResolutionScale": "Κλίμακα Ανάλυσης:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Προσαρμοσμένο (Δεν συνιστάται)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Εγγενής (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Not recommended)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Αναλογία Απεικόνισης:",
|
"SettingsTabGraphicsAspectRatio": "Αναλογία Απεικόνισης:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Όλα",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Όλα",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Ενεργοποίηση Αρχείων Καταγραφής Εντοπισμού Σφαλμάτων",
|
"SettingsTabLoggingEnableDebugLogs": "Ενεργοποίηση Αρχείων Καταγραφής Εντοπισμού Σφαλμάτων",
|
||||||
"SettingsTabInput": "Χειρισμός",
|
"SettingsTabInput": "Χειρισμός",
|
||||||
"SettingsTabSystemEnableDockedMode": "Ενεργοποίηση Docked Mode",
|
"SettingsTabInputEnableDockedMode": "Ενεργοποίηση Docked Mode",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Άμεση Πρόσβαση στο Πληκτρολόγιο",
|
"SettingsTabInputDirectKeyboardAccess": "Άμεση Πρόσβαση στο Πληκτρολόγιο",
|
||||||
"SettingsButtonDelete": "Διαγραφή",
|
|
||||||
"SettingsButtonSave": "Αποθήκευση",
|
"SettingsButtonSave": "Αποθήκευση",
|
||||||
"SettingsButtonClose": "Κλείσιμο",
|
"SettingsButtonClose": "Κλείσιμο",
|
||||||
"SettingsButtonOk": "ΟΚ",
|
"SettingsButtonOk": "ΟΚ",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Διαγραφή Προφίλ",
|
"DialogProfileDeleteProfileTitle": "Διαγραφή Προφίλ",
|
||||||
"DialogProfileDeleteProfileMessage": "Αυτή η ενέργεια είναι μη αναστρέψιμη, είστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
"DialogProfileDeleteProfileMessage": "Αυτή η ενέργεια είναι μη αναστρέψιμη, είστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
||||||
"DialogWarning": "Προειδοποίηση",
|
"DialogWarning": "Προειδοποίηση",
|
||||||
"DialogCustomSettingsDeleteMessage": "Πρόκειται να διαγράψετε τις προσαρμοσμένες ρυθμίσεις για:\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
|
||||||
"DialogPPTCDeletionMessage": "Πρόκειται να διαγράψετε την προσωρινή μνήμη PPTC για :\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
"DialogPPTCDeletionMessage": "Πρόκειται να διαγράψετε την προσωρινή μνήμη PPTC για :\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
||||||
"DialogPPTCDeletionErrorMessage": "Σφάλμα κατά την εκκαθάριση προσωρινής μνήμης PPTC στο {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Σφάλμα κατά την εκκαθάριση προσωρινής μνήμης PPTC στο {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Πρόκειται να διαγράψετε όλα τα δεδομένα PPTC από:\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Πρόκειται να διαγράψετε την προσωρινή μνήμη Shader για :\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
"DialogShaderDeletionMessage": "Πρόκειται να διαγράψετε την προσωρινή μνήμη Shader για :\n\n{0}\n\nΕίστε βέβαιοι ότι θέλετε να συνεχίσετε;",
|
||||||
"DialogShaderDeletionErrorMessage": "Σφάλμα κατά την εκκαθάριση προσωρινής μνήμης Shader στο {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Σφάλμα κατά την εκκαθάριση προσωρινής μνήμης Shader στο {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Το Ryujinx αντιμετώπισε σφάλμα",
|
"DialogRyujinxErrorMessage": "Το Ryujinx αντιμετώπισε σφάλμα",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Σταματήστε την εξομοίωση ή κλείστε τον εξομοιωτή πριν ξεκινήσετε ένα άλλο παιχνίδι.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Σταματήστε την εξομοίωση ή κλείστε τον εξομοιωτή πριν ξεκινήσετε ένα άλλο παιχνίδι.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Το αρχείο δεν περιέχει ενημέρωση για τον επιλεγμένο τίτλο!",
|
"DialogUpdateAddUpdateErrorMessage": "Το αρχείο δεν περιέχει ενημέρωση για τον επιλεγμένο τίτλο!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Προειδοποίηση - Backend Threading",
|
"DialogSettingsBackendThreadingWarningTitle": "Προειδοποίηση - Backend Threading",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Το Ryujinx πρέπει να επανεκκινηθεί αφού αλλάξει αυτή η επιλογή για να εφαρμοστεί πλήρως. Ανάλογα με την πλατφόρμα σας, μπορεί να χρειαστεί να απενεργοποιήσετε με μη αυτόματο τρόπο το multithreading του ίδιου του προγράμματος οδήγησης όταν χρησιμοποιείτε το Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Χαρακτηριστικά",
|
"SettingsTabGraphicsFeaturesOptions": "Χαρακτηριστικά",
|
||||||
|
|||||||
@@ -71,10 +71,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Opens the Title Update management window",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Opens the Title Update management window",
|
||||||
"GameListContextMenuManageDlc": "Manage DLC",
|
"GameListContextMenuManageDlc": "Manage DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Opens the DLC management window",
|
"GameListContextMenuManageDlcToolTip": "Opens the DLC management window",
|
||||||
"GameListContextMenuManageCustomSettings": "Manage Custom Settings",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Opens the Custom Settings management windows",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Open Custom Settings Directory",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Open the directory which contains Application's custom settings",
|
|
||||||
"GameListContextMenuCacheManagement": "Cache Management",
|
"GameListContextMenuCacheManagement": "Cache Management",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Queue PPTC Rebuild",
|
"GameListContextMenuCacheManagementPurgePptc": "Queue PPTC Rebuild",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Trigger PPTC to rebuild at boot time on the next game launch",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Trigger PPTC to rebuild at boot time on the next game launch",
|
||||||
@@ -201,12 +197,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Resolution Scale:",
|
"SettingsTabGraphicsResolutionScale": "Resolution Scale:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Custom (Not recommended)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Native (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Not recommended)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Aspect Ratio:",
|
"SettingsTabGraphicsAspectRatio": "Aspect Ratio:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -243,9 +238,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "All",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "All",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
|
"SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
|
||||||
"SettingsTabInput": "Input",
|
"SettingsTabInput": "Input",
|
||||||
"SettingsTabSystemEnableDockedMode": "Docked Mode",
|
"SettingsTabInputEnableDockedMode": "Docked Mode",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Direct Keyboard Access",
|
"SettingsTabInputDirectKeyboardAccess": "Direct Keyboard Access",
|
||||||
"SettingsButtonDelete": "Delete",
|
|
||||||
"SettingsButtonSave": "Save",
|
"SettingsButtonSave": "Save",
|
||||||
"SettingsButtonClose": "Close",
|
"SettingsButtonClose": "Close",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -531,7 +525,6 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Deleting Profile",
|
"DialogProfileDeleteProfileTitle": "Deleting Profile",
|
||||||
"DialogProfileDeleteProfileMessage": "This action is irreversible, are you sure you want to continue?",
|
"DialogProfileDeleteProfileMessage": "This action is irreversible, are you sure you want to continue?",
|
||||||
"DialogWarning": "Warning",
|
"DialogWarning": "Warning",
|
||||||
"DialogCustomSettingsDeleteMessage": "You are about to delete custom settings for:\n\n{0}\n\nAre you sure you want to proceed?",
|
|
||||||
"DialogPPTCDeletionMessage": "You are about to queue a PPTC rebuild on the next boot of:\n\n{0}\n\nAre you sure you want to proceed?",
|
"DialogPPTCDeletionMessage": "You are about to queue a PPTC rebuild on the next boot of:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Error purging PPTC cache at {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Error purging PPTC cache at {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
@@ -573,6 +566,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Please stop emulation or close the emulator before launching another game.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Please stop emulation or close the emulator before launching another game.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "The specified file does not contain an update for the selected title!",
|
"DialogUpdateAddUpdateErrorMessage": "The specified file does not contain an update for the selected title!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Warning - Backend Threading",
|
"DialogSettingsBackendThreadingWarningTitle": "Warning - Backend Threading",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx must be restarted after changing this option for it to apply fully. Depending on your platform, you may need to manually disable your driver's own multithreading when using Ryujinx's.",
|
||||||
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Features",
|
"SettingsTabGraphicsFeaturesOptions": "Features",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Abrir la ventana de gestión de actualizaciones de esta aplicación",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Abrir la ventana de gestión de actualizaciones de esta aplicación",
|
||||||
"GameListContextMenuManageDlc": "Gestionar DLC",
|
"GameListContextMenuManageDlc": "Gestionar DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Abrir la ventana de gestión del DLC",
|
"GameListContextMenuManageDlcToolTip": "Abrir la ventana de gestión del DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Gestionar Archivo de Configuración Personalizada",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Gestionar la configuración personalizada para la Aplicación seleccionada",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Abrir Directorio de Configuración Personalizada",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Abrir el directorio que contiene la configuración personalizada de la Aplicación",
|
|
||||||
"GameListContextMenuCacheManagement": "Gestión de caché ",
|
"GameListContextMenuCacheManagement": "Gestión de caché ",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Reconstruir PPTC en cola",
|
"GameListContextMenuCacheManagementPurgePptc": "Reconstruir PPTC en cola",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Elimina la caché de PPTC de esta aplicación",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Elimina la caché de PPTC de esta aplicación",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "x8",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "x8",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "x16",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "x16",
|
||||||
"SettingsTabGraphicsResolutionScale": "Escala de resolución:",
|
"SettingsTabGraphicsResolutionScale": "Escala de resolución:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Personalizada (no recomendado)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Nativa (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "x2 (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "x3 (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (no recomendado)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Relación de aspecto:",
|
"SettingsTabGraphicsAspectRatio": "Relación de aspecto:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todo",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todo",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Habilitar registros de debug",
|
"SettingsTabLoggingEnableDebugLogs": "Habilitar registros de debug",
|
||||||
"SettingsTabInput": "Entrada",
|
"SettingsTabInput": "Entrada",
|
||||||
"SettingsTabSystemEnableDockedMode": "Modo dock/TV",
|
"SettingsTabInputEnableDockedMode": "Modo dock/TV",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Acceso directo al teclado",
|
"SettingsTabInputDirectKeyboardAccess": "Acceso directo al teclado",
|
||||||
"SettingsButtonDelete": "Eliminar",
|
|
||||||
"SettingsButtonSave": "Guardar",
|
"SettingsButtonSave": "Guardar",
|
||||||
"SettingsButtonClose": "Cerrar",
|
"SettingsButtonClose": "Cerrar",
|
||||||
"SettingsButtonOk": "Aceptar",
|
"SettingsButtonOk": "Aceptar",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Eliminando perfil",
|
"DialogProfileDeleteProfileTitle": "Eliminando perfil",
|
||||||
"DialogProfileDeleteProfileMessage": "Esta acción es irreversible, ¿estás seguro de querer continuar?",
|
"DialogProfileDeleteProfileMessage": "Esta acción es irreversible, ¿estás seguro de querer continuar?",
|
||||||
"DialogWarning": "Advertencia",
|
"DialogWarning": "Advertencia",
|
||||||
"DialogCustomSettingsDeleteMessage": "Está a punto de eliminar la configuración personalizada para:\n\n{0}\n\n¿Está seguro de que desea continuar?",
|
|
||||||
"DialogPPTCDeletionMessage": "Vas a borrar la caché de PPTC para:\n\n{0}\n\n¿Estás seguro de querer continuar?",
|
"DialogPPTCDeletionMessage": "Vas a borrar la caché de PPTC para:\n\n{0}\n\n¿Estás seguro de querer continuar?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Error purgando la caché de PPTC en {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Error purgando la caché de PPTC en {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Está a punto de eliminar todos los datos PPTC de:\n\n{0}\n\n¿Está seguro de que desea continuar?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Vas a borrar la caché de sombreadores para:\n\n{0}\n\n¿Estás seguro de querer continuar?",
|
"DialogShaderDeletionMessage": "Vas a borrar la caché de sombreadores para:\n\n{0}\n\n¿Estás seguro de querer continuar?",
|
||||||
"DialogShaderDeletionErrorMessage": "Error purgando la caché de sombreadores en {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Error purgando la caché de sombreadores en {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx ha encontrado un error",
|
"DialogRyujinxErrorMessage": "Ryujinx ha encontrado un error",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Por favor, detén la emulación o cierra el emulador antes de iniciar otro juego.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Por favor, detén la emulación o cierra el emulador antes de iniciar otro juego.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "¡Ese archivo no contiene una actualización para el título seleccionado!",
|
"DialogUpdateAddUpdateErrorMessage": "¡Ese archivo no contiene una actualización para el título seleccionado!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Advertencia - multihilado de gráficos",
|
"DialogSettingsBackendThreadingWarningTitle": "Advertencia - multihilado de gráficos",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx debe reiniciarse para aplicar este cambio. Dependiendo de tu plataforma, puede que tengas que desactivar manualmente la optimización enlazada de tus controladores gráficos para usar el multihilo de Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Estás a punto de eliminar el mod: {0}\n\n¿Estás seguro de que quieres continuar?",
|
"DialogModManagerDeletionWarningMessage": "Estás a punto de eliminar el mod: {0}\n\n¿Estás seguro de que quieres continuar?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Estás a punto de eliminar todos los Mods para este título.\n\n¿Estás seguro de que quieres continuar?",
|
"DialogModManagerDeletionAllWarningMessage": "Estás a punto de eliminar todos los Mods para este título.\n\n¿Estás seguro de que quieres continuar?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Funcionalidades",
|
"SettingsTabGraphicsFeaturesOptions": "Funcionalidades",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Ouvre la fenêtre de gestion des mises à jour du jeu",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Ouvre la fenêtre de gestion des mises à jour du jeu",
|
||||||
"GameListContextMenuManageDlc": "Gérer les DLC",
|
"GameListContextMenuManageDlc": "Gérer les DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Ouvre la fenêtre de gestion des DLC",
|
"GameListContextMenuManageDlcToolTip": "Ouvre la fenêtre de gestion des DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Gérer les paramètres personnalisés",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Gérer les paramètres personnalisés pour l'Application sélectionnée",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Ouvrir le Répertoire des Paramètres Personnalisés",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Ouvrir le répertoire contenant les paramètres personnalisés de l'Application",
|
|
||||||
"GameListContextMenuCacheManagement": "Gestion des caches",
|
"GameListContextMenuCacheManagement": "Gestion des caches",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Reconstruction du PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Reconstruction du PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Effectuer une reconstruction du PPTC au prochain démarrage du jeu",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Effectuer une reconstruction du PPTC au prochain démarrage du jeu",
|
||||||
@@ -178,12 +174,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "x8",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "x8",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "x16",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "x16",
|
||||||
"SettingsTabGraphicsResolutionScale": "Échelle de résolution:",
|
"SettingsTabGraphicsResolutionScale": "Échelle de résolution:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Personnalisée (Non recommandée)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Natif (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "x2 (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "x3 (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Non recommandé)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Format d'affichage :",
|
"SettingsTabGraphicsAspectRatio": "Format d'affichage :",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -214,9 +209,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tout",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tout",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Activer les journaux de debug",
|
"SettingsTabLoggingEnableDebugLogs": "Activer les journaux de debug",
|
||||||
"SettingsTabInput": "Contrôles",
|
"SettingsTabInput": "Contrôles",
|
||||||
"SettingsTabSystemEnableDockedMode": "Active le mode station d'accueil",
|
"SettingsTabInputEnableDockedMode": "Active le mode station d'accueil",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Accès direct au clavier",
|
"SettingsTabInputDirectKeyboardAccess": "Accès direct au clavier",
|
||||||
"SettingsButtonDelete": "Supprimer",
|
|
||||||
"SettingsButtonSave": "Enregistrer",
|
"SettingsButtonSave": "Enregistrer",
|
||||||
"SettingsButtonClose": "Fermer",
|
"SettingsButtonClose": "Fermer",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -495,10 +489,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Supprimer le profil",
|
"DialogProfileDeleteProfileTitle": "Supprimer le profil",
|
||||||
"DialogProfileDeleteProfileMessage": "Cette action est irréversible, êtes-vous sûr de vouloir continuer ?",
|
"DialogProfileDeleteProfileMessage": "Cette action est irréversible, êtes-vous sûr de vouloir continuer ?",
|
||||||
"DialogWarning": "Avertissement",
|
"DialogWarning": "Avertissement",
|
||||||
"DialogCustomSettingsDeleteMessage": "Vous êtes sur le point de supprimer les paramètres personnalisés pour :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
|
||||||
"DialogPPTCDeletionMessage": "Vous êtes sur le point de mettre en file d'attente une reconstruction PPTC au prochain démarrage de :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
"DialogPPTCDeletionMessage": "Vous êtes sur le point de mettre en file d'attente une reconstruction PPTC au prochain démarrage de :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Erreur lors de la purge du cache PPTC à {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Erreur lors de la purge du cache PPTC à {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Vous êtes sur le point de supprimer toutes les données PPTC de :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Vous êtes sur le point de supprimer le cache du Shader pour :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
"DialogShaderDeletionMessage": "Vous êtes sur le point de supprimer le cache du Shader pour :\n\n{0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
||||||
"DialogShaderDeletionErrorMessage": "Erreur lors de la purge du cache du Shader à {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Erreur lors de la purge du cache du Shader à {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx a rencontré une erreur",
|
"DialogRyujinxErrorMessage": "Ryujinx a rencontré une erreur",
|
||||||
@@ -537,6 +530,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Veuillez arrêter l'émulation ou fermer l'émulateur avant de lancer un autre jeu.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Veuillez arrêter l'émulation ou fermer l'émulateur avant de lancer un autre jeu.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Le fichier spécifié ne contient pas de mise à jour pour le titre sélectionné !",
|
"DialogUpdateAddUpdateErrorMessage": "Le fichier spécifié ne contient pas de mise à jour pour le titre sélectionné !",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Avertissement - Backend Threading ",
|
"DialogSettingsBackendThreadingWarningTitle": "Avertissement - Backend Threading ",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx doit être redémarré après avoir changé cette option pour qu'elle s'applique complètement. Selon votre plate-forme, vous devrez peut-être désactiver manuellement le multithreading de votre pilote lorsque vous utilisez Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Vous êtes sur le point de supprimer le mod : {0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
"DialogModManagerDeletionWarningMessage": "Vous êtes sur le point de supprimer le mod : {0}\n\nÊtes-vous sûr de vouloir continuer ?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Vous êtes sur le point de supprimer tous les mods pour ce titre.\n\nÊtes-vous sûr de vouloir continuer ?",
|
"DialogModManagerDeletionAllWarningMessage": "Vous êtes sur le point de supprimer tous les mods pour ce titre.\n\nÊtes-vous sûr de vouloir continuer ?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Fonctionnalités",
|
"SettingsTabGraphicsFeaturesOptions": "Fonctionnalités",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "פותח את חלון מנהל עדכוני המשחקים",
|
"GameListContextMenuManageTitleUpdatesToolTip": "פותח את חלון מנהל עדכוני המשחקים",
|
||||||
"GameListContextMenuManageDlc": "מנהל הרחבות",
|
"GameListContextMenuManageDlc": "מנהל הרחבות",
|
||||||
"GameListContextMenuManageDlcToolTip": "פותח את חלון מנהל הרחבות המשחקים",
|
"GameListContextMenuManageDlcToolTip": "פותח את חלון מנהל הרחבות המשחקים",
|
||||||
"GameListContextMenuManageCustomSettings": "נהל קובץ הגדרות מותאמות אישית",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "נהל הגדרות מותאמות אישית עבור האפליקציה שנבחרה",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "פתח תיקיית הגדרות מותאמות אישית",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "פתח את התיקייה המכילה את הגדרות מותאמות אישית של האפליקציה",
|
|
||||||
"GameListContextMenuCacheManagement": "ניהול מטמון",
|
"GameListContextMenuCacheManagement": "ניהול מטמון",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "הוסף PPTC לתור בנייה מחדש",
|
"GameListContextMenuCacheManagementPurgePptc": "הוסף PPTC לתור בנייה מחדש",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "גרום ל-PPTC להבנות מחדש בפתיחה הבאה של המשחק",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "גרום ל-PPTC להבנות מחדש בפתיחה הבאה של המשחק",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "קנה מידה של רזולוציה:",
|
"SettingsTabGraphicsResolutionScale": "קנה מידה של רזולוציה:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "מותאם אישית (לא מומלץ)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "מקורי (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (לא מומלץ)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "יחס גובה-רוחב:",
|
"SettingsTabGraphicsAspectRatio": "יחס גובה-רוחב:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "הכל",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "הכל",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "אפשר רישום ניפוי באגים",
|
"SettingsTabLoggingEnableDebugLogs": "אפשר רישום ניפוי באגים",
|
||||||
"SettingsTabInput": "קלט",
|
"SettingsTabInput": "קלט",
|
||||||
"SettingsTabSystemEnableDockedMode": "מצב עגינה",
|
"SettingsTabInputEnableDockedMode": "מצב עגינה",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "גישה ישירה למקלדת",
|
"SettingsTabInputDirectKeyboardAccess": "גישה ישירה למקלדת",
|
||||||
"SettingsButtonDelete": "מחק",
|
|
||||||
"SettingsButtonSave": "שמירה",
|
"SettingsButtonSave": "שמירה",
|
||||||
"SettingsButtonClose": "סגירה",
|
"SettingsButtonClose": "סגירה",
|
||||||
"SettingsButtonOk": "אישור",
|
"SettingsButtonOk": "אישור",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "מוחק פרופיל",
|
"DialogProfileDeleteProfileTitle": "מוחק פרופיל",
|
||||||
"DialogProfileDeleteProfileMessage": "פעולה זו היא בלתי הפיכה, האם אתם בטוחים שברצונכם להמשיך?",
|
"DialogProfileDeleteProfileMessage": "פעולה זו היא בלתי הפיכה, האם אתם בטוחים שברצונכם להמשיך?",
|
||||||
"DialogWarning": "אזהרה",
|
"DialogWarning": "אזהרה",
|
||||||
"DialogCustomSettingsDeleteMessage": "אתה עומד למחוק הגדרות מותאמות אישית עבור:\n\n{0}\n\nהאם אתה בטוח שברצונך להמשיך?",
|
|
||||||
"DialogPPTCDeletionMessage": "אם תמשיכו אתם עומדים לגרום לבנייה מחדש של מטמון ה-PPTC עבור:\n\n{0}",
|
"DialogPPTCDeletionMessage": "אם תמשיכו אתם עומדים לגרום לבנייה מחדש של מטמון ה-PPTC עבור:\n\n{0}",
|
||||||
"DialogPPTCDeletionErrorMessage": "שגיאה בטיהור מטמון PPTC ב-{0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "שגיאה בטיהור מטמון PPTC ב-{0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "אתה עומד למחוק את כל נתוני PPTC מ:\n\n{0}\n\nהאם אתה בטוח שברצונך להמשיך?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "אם תמשיכו אתם עומדים למחוק את מטמון ההצללות עבור:\n\n{0}",
|
"DialogShaderDeletionMessage": "אם תמשיכו אתם עומדים למחוק את מטמון ההצללות עבור:\n\n{0}",
|
||||||
"DialogShaderDeletionErrorMessage": "שגיאה בניקוי מטמון ההצללות ב-{0}: {1}",
|
"DialogShaderDeletionErrorMessage": "שגיאה בניקוי מטמון ההצללות ב-{0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "ריוג'ינקס נתקלה בשגיאה",
|
"DialogRyujinxErrorMessage": "ריוג'ינקס נתקלה בשגיאה",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "אנא הפסק את האמולציה או סגור את האמולטור לפני הפעלת משחק אחר.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "אנא הפסק את האמולציה או סגור את האמולטור לפני הפעלת משחק אחר.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "הקובץ שצוין אינו מכיל עדכון עבור המשחק שנבחר!",
|
"DialogUpdateAddUpdateErrorMessage": "הקובץ שצוין אינו מכיל עדכון עבור המשחק שנבחר!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "אזהרה - ריבוי תהליכי רקע",
|
"DialogSettingsBackendThreadingWarningTitle": "אזהרה - ריבוי תהליכי רקע",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "יש להפעיל מחדש את ריוג'ינקס לאחר שינוי אפשרות זו כדי שהיא תחול במלואה. בהתאם לפלטפורמה שלך, ייתכן שיהיה עליך להשבית ידנית את ריבוי ההליכים של ההתקן שלך בעת השימוש ב-ריוג'ינקס.",
|
||||||
"DialogModManagerDeletionWarningMessage": "אתה עומד למחוק את המוד: {0}\nהאם אתה בטוח שאתה רוצה להמשיך?",
|
"DialogModManagerDeletionWarningMessage": "אתה עומד למחוק את המוד: {0}\nהאם אתה בטוח שאתה רוצה להמשיך?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "אתה עומד למחוק את כל המודים בשביל משחק זה.\n\nהאם אתה בטוח שאתה רוצה להמשיך?",
|
"DialogModManagerDeletionAllWarningMessage": "אתה עומד למחוק את כל המודים בשביל משחק זה.\n\nהאם אתה בטוח שאתה רוצה להמשיך?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "אפשרויות",
|
"SettingsTabGraphicsFeaturesOptions": "אפשרויות",
|
||||||
|
|||||||
@@ -70,10 +70,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Apre la finestra di gestione aggiornamenti del gioco",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Apre la finestra di gestione aggiornamenti del gioco",
|
||||||
"GameListContextMenuManageDlc": "Gestisci DLC",
|
"GameListContextMenuManageDlc": "Gestisci DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Apre la finestra di gestione dei DLC",
|
"GameListContextMenuManageDlcToolTip": "Apre la finestra di gestione dei DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Gestisci le impostazioni personalizzate",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Gestisci le impostazioni personalizzate per l'Applicazione selezionata",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Apri Directory Impostazioni Personalizzate",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Apri la directory che contiene le impostazioni personalizzate dell'Applicazione",
|
|
||||||
"GameListContextMenuCacheManagement": "Gestione della cache",
|
"GameListContextMenuCacheManagement": "Gestione della cache",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Accoda rigenerazione della cache PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Accoda rigenerazione della cache PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Esegue la rigenerazione della cache PPTC al prossimo avvio del gioco",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Esegue la rigenerazione della cache PPTC al prossimo avvio del gioco",
|
||||||
@@ -199,12 +195,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Scala della risoluzione:",
|
"SettingsTabGraphicsResolutionScale": "Scala della risoluzione:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Personalizzata (Non raccomandata)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Nativa (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Non consigliato)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Rapporto d'aspetto:",
|
"SettingsTabGraphicsAspectRatio": "Rapporto d'aspetto:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -235,9 +230,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tutto",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tutto",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Attiva log di debug",
|
"SettingsTabLoggingEnableDebugLogs": "Attiva log di debug",
|
||||||
"SettingsTabInput": "Comandi",
|
"SettingsTabInput": "Comandi",
|
||||||
"SettingsTabSystemEnableDockedMode": "Attiva modalità TV",
|
"SettingsTabInputEnableDockedMode": "Attiva modalità TV",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Accesso diretto alla tastiera",
|
"SettingsTabInputDirectKeyboardAccess": "Accesso diretto alla tastiera",
|
||||||
"SettingsButtonDelete": "Elimina",
|
|
||||||
"SettingsButtonSave": "Salva",
|
"SettingsButtonSave": "Salva",
|
||||||
"SettingsButtonClose": "Chiudi",
|
"SettingsButtonClose": "Chiudi",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -521,11 +515,10 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Eliminazione profilo",
|
"DialogProfileDeleteProfileTitle": "Eliminazione profilo",
|
||||||
"DialogProfileDeleteProfileMessage": "Quest'azione è irreversibile, sei sicuro di voler continuare?",
|
"DialogProfileDeleteProfileMessage": "Quest'azione è irreversibile, sei sicuro di voler continuare?",
|
||||||
"DialogWarning": "Avviso",
|
"DialogWarning": "Avviso",
|
||||||
"DialogCustomSettingsDeleteMessage": "Stai per eliminare le impostazioni personalizzate per:\n\n{0}\n\nSei sicuro di voler procedere?",
|
"DialogPPTCDeletionMessage": "Stai per accodare la rigenerazione della cache PPTC al prossimo avvio per:\n\n{0}\n\nSei sicuro di voler proseguire?",
|
||||||
"DialogPPTCDeletionMessage": "Stai per accodare la rigenerazione della cache PPTC al prossimo avvio per:\n\n{0}\n\nSei sicuro di voler procedere?",
|
|
||||||
"DialogPPTCDeletionErrorMessage": "Errore nell'eliminazione della cache PPTC a {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Errore nell'eliminazione della cache PPTC a {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Stai per eliminare tutti i dati PPTC da:\n\n{0}\n\nSei sicuro di voler procedere?",
|
"DialogPPTCNukeMessage": "Stai per eliminare i tutti i dati della cache PPTC da:\n\n{0}\n\nSei sicuro di voler proseguire?",
|
||||||
"DialogShaderDeletionMessage": "Stai per eliminare la cache degli shader per:\n\n{0}\n\nSei sicuro di voler procedere?",
|
"DialogShaderDeletionMessage": "Stai per eliminare la cache degli shader per:\n\n{0}\n\nSei sicuro di voler proseguire?",
|
||||||
"DialogShaderDeletionErrorMessage": "Errore nell'eliminazione della cache degli shader a {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Errore nell'eliminazione della cache degli shader a {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx ha riscontrato un errore",
|
"DialogRyujinxErrorMessage": "Ryujinx ha riscontrato un errore",
|
||||||
"DialogInvalidTitleIdErrorMessage": "Errore UI: Il gioco selezionato non ha un ID titolo valido",
|
"DialogInvalidTitleIdErrorMessage": "Errore UI: Il gioco selezionato non ha un ID titolo valido",
|
||||||
@@ -563,6 +556,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Ferma l'emulazione o chiudi l'emulatore prima di avviare un altro gioco.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Ferma l'emulazione o chiudi l'emulatore prima di avviare un altro gioco.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Il file specificato non contiene un aggiornamento per il titolo selezionato!",
|
"DialogUpdateAddUpdateErrorMessage": "Il file specificato non contiene un aggiornamento per il titolo selezionato!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Avviso - Backend Threading",
|
"DialogSettingsBackendThreadingWarningTitle": "Avviso - Backend Threading",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx deve essere riavviato dopo aver cambiato questa opzione per applicarla completamente. A seconda della tua piattaforma, potrebbe essere necessario disabilitare manualmente il multithreading del driver quando usi quello di Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Stai per eliminare la mod: {0}\n\nConfermi di voler procedere?",
|
"DialogModManagerDeletionWarningMessage": "Stai per eliminare la mod: {0}\n\nConfermi di voler procedere?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Stai per eliminare tutte le mod per questo titolo.\n\nVuoi davvero procedere?",
|
"DialogModManagerDeletionAllWarningMessage": "Stai per eliminare tutte le mod per questo titolo.\n\nVuoi davvero procedere?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Funzionalità",
|
"SettingsTabGraphicsFeaturesOptions": "Funzionalità",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "タイトルのアップデート管理ウインドウを開きます",
|
"GameListContextMenuManageTitleUpdatesToolTip": "タイトルのアップデート管理ウインドウを開きます",
|
||||||
"GameListContextMenuManageDlc": "DLCを管理",
|
"GameListContextMenuManageDlc": "DLCを管理",
|
||||||
"GameListContextMenuManageDlcToolTip": "DLC管理ウインドウを開きます",
|
"GameListContextMenuManageDlcToolTip": "DLC管理ウインドウを開きます",
|
||||||
"GameListContextMenuManageCustomSettings": "カスタム設定ファイルを管理",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "選択したアプリケーションのカスタム設定を管理します",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "カスタム設定ディレクトリを開く",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "アプリケーションのカスタム設定を含むディレクトリを開きます",
|
|
||||||
"GameListContextMenuCacheManagement": "キャッシュ管理",
|
"GameListContextMenuCacheManagement": "キャッシュ管理",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "PPTC を再構築",
|
"GameListContextMenuCacheManagementPurgePptc": "PPTC を再構築",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "次回のゲーム起動時に PPTC を再構築します",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "次回のゲーム起動時に PPTC を再構築します",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "解像度:",
|
"SettingsTabGraphicsResolutionScale": "解像度:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "カスタム (非推奨)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "ネイティブ (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (非推奨)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "アスペクト比:",
|
"SettingsTabGraphicsAspectRatio": "アスペクト比:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "すべて",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "すべて",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "デバッグログを有効にする",
|
"SettingsTabLoggingEnableDebugLogs": "デバッグログを有効にする",
|
||||||
"SettingsTabInput": "入力",
|
"SettingsTabInput": "入力",
|
||||||
"SettingsTabSystemEnableDockedMode": "ドッキングモード",
|
"SettingsTabInputEnableDockedMode": "ドッキングモード",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "キーボード直接アクセス",
|
"SettingsTabInputDirectKeyboardAccess": "キーボード直接アクセス",
|
||||||
"SettingsButtonDelete": "削除",
|
|
||||||
"SettingsButtonSave": "セーブ",
|
"SettingsButtonSave": "セーブ",
|
||||||
"SettingsButtonClose": "閉じる",
|
"SettingsButtonClose": "閉じる",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "プロファイルを削除中",
|
"DialogProfileDeleteProfileTitle": "プロファイルを削除中",
|
||||||
"DialogProfileDeleteProfileMessage": "このアクションは元に戻せません. 本当に続けてよろしいですか?",
|
"DialogProfileDeleteProfileMessage": "このアクションは元に戻せません. 本当に続けてよろしいですか?",
|
||||||
"DialogWarning": "警告",
|
"DialogWarning": "警告",
|
||||||
"DialogCustomSettingsDeleteMessage": "次のカスタム設定を削除しようとしています:\n\n{0}\n\n続行してもよろしいですか?",
|
|
||||||
"DialogPPTCDeletionMessage": "次回起動時に PPTC を再構築します:\n\n{0}\n\n実行してよろしいですか?",
|
"DialogPPTCDeletionMessage": "次回起動時に PPTC を再構築します:\n\n{0}\n\n実行してよろしいですか?",
|
||||||
"DialogPPTCDeletionErrorMessage": "PPTC キャッシュ破棄エラー {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "PPTC キャッシュ破棄エラー {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "次のすべてのPPTCデータを削除しようとしています:\n\n{0}\n\n続行してもよろしいですか?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "シェーダーキャッシュを破棄しようとしています:\n\n{0}\n\n実行してよろしいですか?",
|
"DialogShaderDeletionMessage": "シェーダーキャッシュを破棄しようとしています:\n\n{0}\n\n実行してよろしいですか?",
|
||||||
"DialogShaderDeletionErrorMessage": "シェーダーキャッシュ破棄エラー {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "シェーダーキャッシュ破棄エラー {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "エラーが発生しました",
|
"DialogRyujinxErrorMessage": "エラーが発生しました",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "別のゲームを起動する前に, エミュレーションを中止またはエミュレータを閉じてください.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "別のゲームを起動する前に, エミュレーションを中止またはエミュレータを閉じてください.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "選択されたファイルはこのタイトル用のアップデートではありません!",
|
"DialogUpdateAddUpdateErrorMessage": "選択されたファイルはこのタイトル用のアップデートではありません!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "警告 - バックエンドスレッディング",
|
"DialogSettingsBackendThreadingWarningTitle": "警告 - バックエンドスレッディング",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "このオプションの変更を完全に適用するには Ryujinx の再起動が必要です. プラットフォームによっては, Ryujinx のものを使用する前に手動でドライバ自身のマルチスレッディングを無効にする必要があるかもしれません.",
|
||||||
"DialogModManagerDeletionWarningMessage": "以下のModを削除しようとしています: {0}\n\n続行してもよろしいですか?",
|
"DialogModManagerDeletionWarningMessage": "以下のModを削除しようとしています: {0}\n\n続行してもよろしいですか?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "このタイトルの Mod をすべて削除しようとしています.\n\n続行してもよろしいですか?",
|
"DialogModManagerDeletionAllWarningMessage": "このタイトルの Mod をすべて削除しようとしています.\n\n続行してもよろしいですか?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "機能",
|
"SettingsTabGraphicsFeaturesOptions": "機能",
|
||||||
|
|||||||
@@ -68,10 +68,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "타이틀 업데이트 관리 창 열기",
|
"GameListContextMenuManageTitleUpdatesToolTip": "타이틀 업데이트 관리 창 열기",
|
||||||
"GameListContextMenuManageDlc": "DLC 관리",
|
"GameListContextMenuManageDlc": "DLC 관리",
|
||||||
"GameListContextMenuManageDlcToolTip": "DLC 관리 창 열기",
|
"GameListContextMenuManageDlcToolTip": "DLC 관리 창 열기",
|
||||||
"GameListContextMenuManageCustomSettings": "사용자 지정 설정 파일 관리",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "선택한 애플리케이션에 대한 사용자 지정 설정을 관리합니다",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "사용자 지정 설정 디렉토리 열기",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "애플리케이션의 사용자 지정 설정이 포함된 디렉토리를 엽니다",
|
|
||||||
"GameListContextMenuCacheManagement": "캐시 관리",
|
"GameListContextMenuCacheManagement": "캐시 관리",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "대기열 PPTC 재구성",
|
"GameListContextMenuCacheManagementPurgePptc": "대기열 PPTC 재구성",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "다음 게임 시작에서 부팅 시 PPTC가 다시 빌드하도록 트리거",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "다음 게임 시작에서 부팅 시 PPTC가 다시 빌드하도록 트리거",
|
||||||
@@ -179,12 +175,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8배",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8배",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16배",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16배",
|
||||||
"SettingsTabGraphicsResolutionScale": "해상도 배율 :",
|
"SettingsTabGraphicsResolutionScale": "해상도 배율 :",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "사용자 정의(권장하지 않음)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "원본(720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2배(1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3배(2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (권장하지 않음)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "종횡비 :",
|
"SettingsTabGraphicsAspectRatio": "종횡비 :",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -215,9 +210,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "모두",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "모두",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "디버그 로그 활성화",
|
"SettingsTabLoggingEnableDebugLogs": "디버그 로그 활성화",
|
||||||
"SettingsTabInput": "입력",
|
"SettingsTabInput": "입력",
|
||||||
"SettingsTabSystemEnableDockedMode": "도킹 모드",
|
"SettingsTabInputEnableDockedMode": "도킹 모드",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "직접 키보드 접속",
|
"SettingsTabInputDirectKeyboardAccess": "직접 키보드 접속",
|
||||||
"SettingsButtonDelete": "삭제",
|
|
||||||
"SettingsButtonSave": "저장",
|
"SettingsButtonSave": "저장",
|
||||||
"SettingsButtonClose": "닫기",
|
"SettingsButtonClose": "닫기",
|
||||||
"SettingsButtonOk": "확인",
|
"SettingsButtonOk": "확인",
|
||||||
@@ -496,10 +490,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "프로필 삭제",
|
"DialogProfileDeleteProfileTitle": "프로필 삭제",
|
||||||
"DialogProfileDeleteProfileMessage": "이 작업은 되돌릴 수 없습니다. 계속하겠습니까?",
|
"DialogProfileDeleteProfileMessage": "이 작업은 되돌릴 수 없습니다. 계속하겠습니까?",
|
||||||
"DialogWarning": "경고",
|
"DialogWarning": "경고",
|
||||||
"DialogCustomSettingsDeleteMessage": "다음에 대한 사용자 지정 설정을 삭제하려고 합니다:\n\n{0}\n\n계속 진행하시겠습니까?",
|
|
||||||
"DialogPPTCDeletionMessage": "다음 부팅 시, PPTC 재구축을 대기열에 추가 :\n\n{0}\n\n계속하겠습니까?",
|
"DialogPPTCDeletionMessage": "다음 부팅 시, PPTC 재구축을 대기열에 추가 :\n\n{0}\n\n계속하겠습니까?",
|
||||||
"DialogPPTCDeletionErrorMessage": "{0}에서 PPTC 캐시 삭제 오류 : {1}",
|
"DialogPPTCDeletionErrorMessage": "{0}에서 PPTC 캐시 삭제 오류 : {1}",
|
||||||
"DialogPPTCNukeMessage": "다음에서 모든 PPTC 데이터를 삭제하려고 합니다:\n\n{0}\n\n계속 진행하시겠습니까?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "다음에 대한 셰이더 캐시 삭제 :\n\n{0}\n\n계속하겠습니까?",
|
"DialogShaderDeletionMessage": "다음에 대한 셰이더 캐시 삭제 :\n\n{0}\n\n계속하겠습니까?",
|
||||||
"DialogShaderDeletionErrorMessage": "{0}에서 셰이더 캐시 제거 오류 : {1}",
|
"DialogShaderDeletionErrorMessage": "{0}에서 셰이더 캐시 제거 오류 : {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx에 오류 발생",
|
"DialogRyujinxErrorMessage": "Ryujinx에 오류 발생",
|
||||||
@@ -538,6 +531,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "다른 게임을 시작하기 전에 에뮬레이션을 중지하거나 에뮬레이터를 닫으세요.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "다른 게임을 시작하기 전에 에뮬레이션을 중지하거나 에뮬레이터를 닫으세요.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "지정된 파일에 선택한 제목에 대한 업데이트가 포함되어 있지 않습니다!",
|
"DialogUpdateAddUpdateErrorMessage": "지정된 파일에 선택한 제목에 대한 업데이트가 포함되어 있지 않습니다!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "경고 - 후단부 스레딩",
|
"DialogSettingsBackendThreadingWarningTitle": "경고 - 후단부 스레딩",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "변경 사항을 완전히 적용하려면 이 옵션을 변경한 후, Ryujinx를 다시 시작해야 합니다. 플랫폼에 따라 Ryujinx를 사용할 때 드라이버 자체의 멀티스레딩을 수동으로 비활성화해야 할 수도 있습니다.",
|
||||||
"DialogModManagerDeletionWarningMessage": "해당 Mod를 삭제하려고 합니다: {0}\n\n정말로 삭제하시겠습니까?",
|
"DialogModManagerDeletionWarningMessage": "해당 Mod를 삭제하려고 합니다: {0}\n\n정말로 삭제하시겠습니까?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "해당 타이틀에 대한 모든 Mod들을 삭제하려고 합니다.\n\n정말로 삭제하시겠습니까?",
|
"DialogModManagerDeletionAllWarningMessage": "해당 타이틀에 대한 모든 Mod들을 삭제하려고 합니다.\n\n정말로 삭제하시겠습니까?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "기능",
|
"SettingsTabGraphicsFeaturesOptions": "기능",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Otwiera okno zarządzania aktualizacjami danej aplikacji",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Otwiera okno zarządzania aktualizacjami danej aplikacji",
|
||||||
"GameListContextMenuManageDlc": "Zarządzaj dodatkową zawartością (DLC)",
|
"GameListContextMenuManageDlc": "Zarządzaj dodatkową zawartością (DLC)",
|
||||||
"GameListContextMenuManageDlcToolTip": "Otwiera okno zarządzania dodatkową zawartością",
|
"GameListContextMenuManageDlcToolTip": "Otwiera okno zarządzania dodatkową zawartością",
|
||||||
"GameListContextMenuManageCustomSettings": "Zarządzaj Plikiem Ustawień Niestandardowych",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Zarządzaj ustawieniami niestandardowymi dla wybranej Aplikacji",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Otwórz Katalog Ustawień Niestandardowych",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Otwórz katalog zawierający ustawienia niestandardowe Aplikacji",
|
|
||||||
"GameListContextMenuCacheManagement": "Zarządzanie Cache",
|
"GameListContextMenuCacheManagement": "Zarządzanie Cache",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Zakolejkuj rekompilację PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Zakolejkuj rekompilację PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Zainicjuj Rekompilację PPTC przy następnym uruchomieniu gry",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Zainicjuj Rekompilację PPTC przy następnym uruchomieniu gry",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Skalowanie rozdzielczości:",
|
"SettingsTabGraphicsResolutionScale": "Skalowanie rozdzielczości:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Niestandardowa (Niezalecane)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Natywna (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (niezalecane)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Format obrazu:",
|
"SettingsTabGraphicsAspectRatio": "Format obrazu:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Wszystko",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Wszystko",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Włącz dzienniki zdarzeń do debugowania",
|
"SettingsTabLoggingEnableDebugLogs": "Włącz dzienniki zdarzeń do debugowania",
|
||||||
"SettingsTabInput": "Sterowanie",
|
"SettingsTabInput": "Sterowanie",
|
||||||
"SettingsTabSystemEnableDockedMode": "Tryb zadokowany",
|
"SettingsTabInputEnableDockedMode": "Tryb zadokowany",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Bezpośredni dostęp do klawiatury",
|
"SettingsTabInputDirectKeyboardAccess": "Bezpośredni dostęp do klawiatury",
|
||||||
"SettingsButtonDelete": "Usuń",
|
|
||||||
"SettingsButtonSave": "Zapisz",
|
"SettingsButtonSave": "Zapisz",
|
||||||
"SettingsButtonClose": "Zamknij",
|
"SettingsButtonClose": "Zamknij",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Usuwanie Profilu",
|
"DialogProfileDeleteProfileTitle": "Usuwanie Profilu",
|
||||||
"DialogProfileDeleteProfileMessage": "Ta czynność jest nieodwracalna, czy na pewno chcesz kontynuować?",
|
"DialogProfileDeleteProfileMessage": "Ta czynność jest nieodwracalna, czy na pewno chcesz kontynuować?",
|
||||||
"DialogWarning": "Uwaga",
|
"DialogWarning": "Uwaga",
|
||||||
"DialogCustomSettingsDeleteMessage": "Zamierzasz usunąć ustawienia niestandardowe dla:\n\n{0}\n\nCzy na pewno chcesz kontynuować?",
|
|
||||||
"DialogPPTCDeletionMessage": "Masz zamiar umieścić w kolejce rekompilację PPTC przy następnym uruchomieniu:\n\n{0}\n\nCzy na pewno chcesz kontynuować?",
|
"DialogPPTCDeletionMessage": "Masz zamiar umieścić w kolejce rekompilację PPTC przy następnym uruchomieniu:\n\n{0}\n\nCzy na pewno chcesz kontynuować?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Błąd czyszczenia cache PPTC w {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Błąd czyszczenia cache PPTC w {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Zamierzasz usunąć wszystkie dane PPTC z:\n\n{0}\n\nCzy na pewno chcesz kontynuować?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Zamierzasz usunąć cache Shaderów dla :\n\n{0}\n\nNa pewno chcesz kontynuować?",
|
"DialogShaderDeletionMessage": "Zamierzasz usunąć cache Shaderów dla :\n\n{0}\n\nNa pewno chcesz kontynuować?",
|
||||||
"DialogShaderDeletionErrorMessage": "Błąd czyszczenia cache Shaderów w {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Błąd czyszczenia cache Shaderów w {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx napotkał błąd",
|
"DialogRyujinxErrorMessage": "Ryujinx napotkał błąd",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Zatrzymaj emulację lub zamknij emulator przed uruchomieniem innej gry.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Zatrzymaj emulację lub zamknij emulator przed uruchomieniem innej gry.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Określony plik nie zawiera aktualizacji dla wybranego tytułu!",
|
"DialogUpdateAddUpdateErrorMessage": "Określony plik nie zawiera aktualizacji dla wybranego tytułu!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Ostrzeżenie — Wątki Backend",
|
"DialogSettingsBackendThreadingWarningTitle": "Ostrzeżenie — Wątki Backend",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx musi zostać ponownie uruchomiony po zmianie tej opcji, aby działał w pełni. W zależności od platformy może być konieczne ręczne wyłączenie sterownika wielowątkowości podczas korzystania z Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Zamierzasz usunąć modyfikacje: {0}\n\nCzy na pewno chcesz kontynuować?",
|
"DialogModManagerDeletionWarningMessage": "Zamierzasz usunąć modyfikacje: {0}\n\nCzy na pewno chcesz kontynuować?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Zamierzasz usunąć wszystkie modyfikacje dla wybranego tytułu: {0}\n\nCzy na pewno chcesz kontynuować?",
|
"DialogModManagerDeletionAllWarningMessage": "Zamierzasz usunąć wszystkie modyfikacje dla wybranego tytułu: {0}\n\nCzy na pewno chcesz kontynuować?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Funkcje",
|
"SettingsTabGraphicsFeaturesOptions": "Funkcje",
|
||||||
|
|||||||
@@ -68,10 +68,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Abre a janela de gerenciamento de atualizações",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Abre a janela de gerenciamento de atualizações",
|
||||||
"GameListContextMenuManageDlc": "Gerenciar DLCs",
|
"GameListContextMenuManageDlc": "Gerenciar DLCs",
|
||||||
"GameListContextMenuManageDlcToolTip": "Abre a janela de gerenciamento de DLCs",
|
"GameListContextMenuManageDlcToolTip": "Abre a janela de gerenciamento de DLCs",
|
||||||
"GameListContextMenuManageCustomSettings": "Gerenciar Arquivo de Configurações Personalizadas",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Gerenciar as configurações personalizadas para a Aplicação selecionada",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Abrir Diretório de Configurações Personalizadas",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Abrir o diretório que contém as configurações personalizadas da Aplicação",
|
|
||||||
"GameListContextMenuCacheManagement": "Gerenciamento de cache",
|
"GameListContextMenuCacheManagement": "Gerenciamento de cache",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Limpar cache PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Limpar cache PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Deleta o cache PPTC armazenado em disco do jogo",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Deleta o cache PPTC armazenado em disco do jogo",
|
||||||
@@ -179,12 +175,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Escala de resolução:",
|
"SettingsTabGraphicsResolutionScale": "Escala de resolução:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Customizada (não recomendado)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Nativa (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (não recomendado)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Proporção:",
|
"SettingsTabGraphicsAspectRatio": "Proporção:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -215,9 +210,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todos",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todos",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Habilitar logs de depuração",
|
"SettingsTabLoggingEnableDebugLogs": "Habilitar logs de depuração",
|
||||||
"SettingsTabInput": "Controle",
|
"SettingsTabInput": "Controle",
|
||||||
"SettingsTabSystemEnableDockedMode": "Habilitar modo TV",
|
"SettingsTabInputEnableDockedMode": "Habilitar modo TV",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Acesso direto ao teclado",
|
"SettingsTabInputDirectKeyboardAccess": "Acesso direto ao teclado",
|
||||||
"SettingsButtonDelete": "Excluir",
|
|
||||||
"SettingsButtonSave": "Salvar",
|
"SettingsButtonSave": "Salvar",
|
||||||
"SettingsButtonClose": "Fechar",
|
"SettingsButtonClose": "Fechar",
|
||||||
"SettingsButtonOk": "OK",
|
"SettingsButtonOk": "OK",
|
||||||
@@ -496,10 +490,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Apagando perfil",
|
"DialogProfileDeleteProfileTitle": "Apagando perfil",
|
||||||
"DialogProfileDeleteProfileMessage": "Essa ação é irreversível, tem certeza que deseja continuar?",
|
"DialogProfileDeleteProfileMessage": "Essa ação é irreversível, tem certeza que deseja continuar?",
|
||||||
"DialogWarning": "Alerta",
|
"DialogWarning": "Alerta",
|
||||||
"DialogCustomSettingsDeleteMessage": "Você está prestes a excluir as configurações personalizadas para:\n\n{0}\n\nTem certeza de que deseja continuar?",
|
|
||||||
"DialogPPTCDeletionMessage": "Você está prestes a apagar o cache PPTC para :\n\n{0}\n\nTem certeza que deseja continuar?",
|
"DialogPPTCDeletionMessage": "Você está prestes a apagar o cache PPTC para :\n\n{0}\n\nTem certeza que deseja continuar?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Erro apagando cache PPTC em {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Erro apagando cache PPTC em {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Você está prestes a excluir todos os dados PPTC de:\n\n{0}\n\nTem certeza de que deseja continuar?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Você está prestes a apagar o cache de Shader para :\n\n{0}\n\nTem certeza que deseja continuar?",
|
"DialogShaderDeletionMessage": "Você está prestes a apagar o cache de Shader para :\n\n{0}\n\nTem certeza que deseja continuar?",
|
||||||
"DialogShaderDeletionErrorMessage": "Erro apagando o cache de Shader em {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Erro apagando o cache de Shader em {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx encontrou um erro",
|
"DialogRyujinxErrorMessage": "Ryujinx encontrou um erro",
|
||||||
@@ -538,6 +531,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Por favor, pare a emulação ou feche o emulador antes de abrir outro jogo.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Por favor, pare a emulação ou feche o emulador antes de abrir outro jogo.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "O arquivo especificado não contém atualizações para o título selecionado!",
|
"DialogUpdateAddUpdateErrorMessage": "O arquivo especificado não contém atualizações para o título selecionado!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Alerta - Threading da API gráfica",
|
"DialogSettingsBackendThreadingWarningTitle": "Alerta - Threading da API gráfica",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx precisa ser reiniciado após mudar essa opção para que ela tenha efeito. Dependendo da sua plataforma, pode ser preciso desabilitar o multithreading do driver de vídeo quando usar o Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Recursos",
|
"SettingsTabGraphicsFeaturesOptions": "Recursos",
|
||||||
|
|||||||
@@ -70,10 +70,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Открывает окно управления обновлениями приложения",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Открывает окно управления обновлениями приложения",
|
||||||
"GameListContextMenuManageDlc": "Управление DLC",
|
"GameListContextMenuManageDlc": "Управление DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Открывает окно управления DLC",
|
"GameListContextMenuManageDlcToolTip": "Открывает окно управления DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Управление файлом пользовательских настроек",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Управление пользовательскими настройками для выбранного приложения",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Открыть каталог пользовательских настроек",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Открыть каталог, содержащий пользовательские настройки приложения",
|
|
||||||
"GameListContextMenuCacheManagement": "Управление кэшем",
|
"GameListContextMenuCacheManagement": "Управление кэшем",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Перестроить очередь PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Перестроить очередь PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Запускает перестройку PPTC во время следующего запуска игры.",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Запускает перестройку PPTC во время следующего запуска игры.",
|
||||||
@@ -198,12 +194,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Масштабирование:",
|
"SettingsTabGraphicsResolutionScale": "Масштабирование:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Пользовательское (не рекомендуется)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Нативное (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (не рекомендуется)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Соотношение сторон:",
|
"SettingsTabGraphicsAspectRatio": "Соотношение сторон:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -234,9 +229,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Всё",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Всё",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Включить журнал отладки",
|
"SettingsTabLoggingEnableDebugLogs": "Включить журнал отладки",
|
||||||
"SettingsTabInput": "Управление",
|
"SettingsTabInput": "Управление",
|
||||||
"SettingsTabSystemEnableDockedMode": "Стационарный режим",
|
"SettingsTabInputEnableDockedMode": "Стационарный режим",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Прямой ввод клавиатуры",
|
"SettingsTabInputDirectKeyboardAccess": "Прямой ввод клавиатуры",
|
||||||
"SettingsButtonDelete": "Удалить",
|
|
||||||
"SettingsButtonSave": "Сохранить",
|
"SettingsButtonSave": "Сохранить",
|
||||||
"SettingsButtonClose": "Закрыть",
|
"SettingsButtonClose": "Закрыть",
|
||||||
"SettingsButtonOk": "Ок",
|
"SettingsButtonOk": "Ок",
|
||||||
@@ -520,10 +514,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Удаление профиля",
|
"DialogProfileDeleteProfileTitle": "Удаление профиля",
|
||||||
"DialogProfileDeleteProfileMessage": "Это действие необратимо. Вы уверены, что хотите продолжить?",
|
"DialogProfileDeleteProfileMessage": "Это действие необратимо. Вы уверены, что хотите продолжить?",
|
||||||
"DialogWarning": "Внимание",
|
"DialogWarning": "Внимание",
|
||||||
"DialogCustomSettingsDeleteMessage": "Вы собираетесь удалить пользовательские настройки для:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
|
||||||
"DialogPPTCDeletionMessage": "Вы собираетесь перестроить кэш PPTC при следующем запуске для:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
"DialogPPTCDeletionMessage": "Вы собираетесь перестроить кэш PPTC при следующем запуске для:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Ошибка очистки кэша PPTC в {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Ошибка очистки кэша PPTC в {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Вы собираетесь удалить все данные PPTC из:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Вы собираетесь удалить кэш шейдеров для:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
"DialogShaderDeletionMessage": "Вы собираетесь удалить кэш шейдеров для:\n\n{0}\n\nВы уверены, что хотите продолжить?",
|
||||||
"DialogShaderDeletionErrorMessage": "Ошибка очистки кэша шейдеров в {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Ошибка очистки кэша шейдеров в {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx обнаружил ошибку",
|
"DialogRyujinxErrorMessage": "Ryujinx обнаружил ошибку",
|
||||||
@@ -562,6 +555,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Пожалуйста, остановите эмуляцию или закройте эмулятор перед запуском другой игры.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Пожалуйста, остановите эмуляцию или закройте эмулятор перед запуском другой игры.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Указанный файл не содержит обновлений для выбранного приложения",
|
"DialogUpdateAddUpdateErrorMessage": "Указанный файл не содержит обновлений для выбранного приложения",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Предупреждение: многопоточность в бэкенде",
|
"DialogSettingsBackendThreadingWarningTitle": "Предупреждение: многопоточность в бэкенде",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Для применения этой настройки необходимо перезапустить Ryujinx. В зависимости от используемой вами операционной системы вам может потребоваться вручную отключить многопоточность драйвера при использовании Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Вы сейчас удалите мод: {0}\n\nВы уверены, что хотите продолжить?",
|
"DialogModManagerDeletionWarningMessage": "Вы сейчас удалите мод: {0}\n\nВы уверены, что хотите продолжить?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Вы сейчас удалите все выбранные моды для этой игры.\n\nВы уверены, что хотите продолжить?",
|
"DialogModManagerDeletionAllWarningMessage": "Вы сейчас удалите все выбранные моды для этой игры.\n\nВы уверены, что хотите продолжить?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Функции & Улучшения",
|
"SettingsTabGraphicsFeaturesOptions": "Функции & Улучшения",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "เปิดหน้าต่างการจัดการการอัพเดตหัวข้อ",
|
"GameListContextMenuManageTitleUpdatesToolTip": "เปิดหน้าต่างการจัดการการอัพเดตหัวข้อ",
|
||||||
"GameListContextMenuManageDlc": "จัดการ DLC",
|
"GameListContextMenuManageDlc": "จัดการ DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "เปิดหน้าต่างจัดการ DLC",
|
"GameListContextMenuManageDlcToolTip": "เปิดหน้าต่างจัดการ DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "จัดการไฟล์การตั้งค่าที่กำหนดเอง",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "จัดการการตั้งค่าที่กำหนดเองสำหรับแอปพลิเคชันที่เลือก",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "เปิดไดเรกทอรีการตั้งค่าที่กำหนดเอง",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "เปิดไดเรกทอรีที่มีการตั้งค่าที่กำหนดเองของแอปพลิเคชัน",
|
|
||||||
"GameListContextMenuCacheManagement": "จัดการ แคช",
|
"GameListContextMenuCacheManagement": "จัดการ แคช",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "เพิ่มเข้าคิวงาน PPTC ที่สร้างใหม่",
|
"GameListContextMenuCacheManagementPurgePptc": "เพิ่มเข้าคิวงาน PPTC ที่สร้างใหม่",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "ทริกเกอร์ PPTC ให้สร้างใหม่ในเวลาบูตเมื่อเปิดตัวเกมครั้งถัดไป",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "ทริกเกอร์ PPTC ให้สร้างใหม่ในเวลาบูตเมื่อเปิดตัวเกมครั้งถัดไป",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "อัตราส่วนความละเอียด:",
|
"SettingsTabGraphicsResolutionScale": "อัตราส่วนความละเอียด:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "กำหนดเอง (ไม่แนะนำ)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "พื้นฐานของระบบ (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (ไม่แนะนำ)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "อัตราส่วนภาพ:",
|
"SettingsTabGraphicsAspectRatio": "อัตราส่วนภาพ:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "ทั้งหมด",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "ทั้งหมด",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "เปิดใช้งาน ประวัติแก้ไขข้อบกพร่อง",
|
"SettingsTabLoggingEnableDebugLogs": "เปิดใช้งาน ประวัติแก้ไขข้อบกพร่อง",
|
||||||
"SettingsTabInput": "ป้อนข้อมูล",
|
"SettingsTabInput": "ป้อนข้อมูล",
|
||||||
"SettingsTabSystemEnableDockedMode": "ด็อกโหมด",
|
"SettingsTabInputEnableDockedMode": "ด็อกโหมด",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "เข้าถึงคีย์บอร์ดโดยตรง",
|
"SettingsTabInputDirectKeyboardAccess": "เข้าถึงคีย์บอร์ดโดยตรง",
|
||||||
"SettingsButtonDelete": "ลบ",
|
|
||||||
"SettingsButtonSave": "บันทึก",
|
"SettingsButtonSave": "บันทึก",
|
||||||
"SettingsButtonClose": "ปิด",
|
"SettingsButtonClose": "ปิด",
|
||||||
"SettingsButtonOk": "ตกลง",
|
"SettingsButtonOk": "ตกลง",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "กำลังลบโปรไฟล์",
|
"DialogProfileDeleteProfileTitle": "กำลังลบโปรไฟล์",
|
||||||
"DialogProfileDeleteProfileMessage": "การดำเนินการนี้ไม่สามารถย้อนกลับได้ คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
"DialogProfileDeleteProfileMessage": "การดำเนินการนี้ไม่สามารถย้อนกลับได้ คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
||||||
"DialogWarning": "คำเตือน",
|
"DialogWarning": "คำเตือน",
|
||||||
"DialogCustomSettingsDeleteMessage": "คุณกำลังจะลบการตั้งค่าที่กำหนดเองสำหรับ:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
|
||||||
"DialogPPTCDeletionMessage": "คุณกำลังจะจัดคิวการสร้าง PPTC ใหม่ในการบูตครั้งถัดไป:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
"DialogPPTCDeletionMessage": "คุณกำลังจะจัดคิวการสร้าง PPTC ใหม่ในการบูตครั้งถัดไป:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
||||||
"DialogPPTCDeletionErrorMessage": "มีข้อผิดพลาดในการล้างแคช PPTC {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "มีข้อผิดพลาดในการล้างแคช PPTC {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "คุณกำลังจะลบข้อมูล PPTC ทั้งหมดจาก:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "คุณกำลังจะลบ เชเดอร์แคช:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
"DialogShaderDeletionMessage": "คุณกำลังจะลบ เชเดอร์แคช:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
|
||||||
"DialogShaderDeletionErrorMessage": "เกิดข้อผิดพลาดในการล้าง เชเดอร์แคช {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "เกิดข้อผิดพลาดในการล้าง เชเดอร์แคช {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "รียูจินซ์ พบข้อผิดพลาด",
|
"DialogRyujinxErrorMessage": "รียูจินซ์ พบข้อผิดพลาด",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "โปรดหยุดการจำลอง หรือปิดโปรแกรมจำลองก่อนที่จะเปิดเกมอื่น",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "โปรดหยุดการจำลอง หรือปิดโปรแกรมจำลองก่อนที่จะเปิดเกมอื่น",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "ไฟล์ที่ระบุไม่มีการอัพเดตสำหรับชื่อเรื่องที่เลือก!",
|
"DialogUpdateAddUpdateErrorMessage": "ไฟล์ที่ระบุไม่มีการอัพเดตสำหรับชื่อเรื่องที่เลือก!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "คำเตือน - การทำเธรดแบ็กเอนด์",
|
"DialogSettingsBackendThreadingWarningTitle": "คำเตือน - การทำเธรดแบ็กเอนด์",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "รียูจินซ์ ต้องรีสตาร์ทหลังจากเปลี่ยนตัวเลือกนี้จึงจะใช้งานได้อย่างสมบูรณ์ คุณอาจต้องปิดการใช้งาน มัลติเธรด ของไดรเวอร์ของคุณด้วยตนเองเมื่อใช้ รียูจินซ์ ทั้งนี้ขึ้นอยู่กับแพลตฟอร์มของคุณ",
|
||||||
"DialogModManagerDeletionWarningMessage": "คุณกำลังจะลบ ม็อด: {0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
"DialogModManagerDeletionWarningMessage": "คุณกำลังจะลบ ม็อด: {0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "คุณกำลังจะลบม็อดทั้งหมดสำหรับชื่อนี้\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
"DialogModManagerDeletionAllWarningMessage": "คุณกำลังจะลบม็อดทั้งหมดสำหรับชื่อนี้\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "คุณสมบัติ",
|
"SettingsTabGraphicsFeaturesOptions": "คุณสมบัติ",
|
||||||
|
|||||||
@@ -66,10 +66,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Oyun Güncelleme Yönetim Penceresini Açar",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Oyun Güncelleme Yönetim Penceresini Açar",
|
||||||
"GameListContextMenuManageDlc": "DLC'leri Yönet",
|
"GameListContextMenuManageDlc": "DLC'leri Yönet",
|
||||||
"GameListContextMenuManageDlcToolTip": "DLC yönetim penceresini açar",
|
"GameListContextMenuManageDlcToolTip": "DLC yönetim penceresini açar",
|
||||||
"GameListContextMenuManageCustomSettings": "Özel Ayarlar Dosyasını Yönet",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Seçilen Uygulama için özel ayarları yönetin",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Özel Ayarlar Dizinini Aç",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Uygulamanın özel ayarlarını içeren dizini açın",
|
|
||||||
"GameListContextMenuCacheManagement": "Önbellek Yönetimi",
|
"GameListContextMenuCacheManagement": "Önbellek Yönetimi",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "PPTC Yeniden Yapılandırmasını Başlat",
|
"GameListContextMenuCacheManagementPurgePptc": "PPTC Yeniden Yapılandırmasını Başlat",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Oyunun bir sonraki açılışında PPTC'yi yeniden yapılandır",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Oyunun bir sonraki açılışında PPTC'yi yeniden yapılandır",
|
||||||
@@ -176,12 +172,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Çözünürlük Ölçeği:",
|
"SettingsTabGraphicsResolutionScale": "Çözünürlük Ölçeği:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Özel (Tavsiye Edilmez)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Yerel (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Tavsiye Edilmez)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "En-Boy Oranı:",
|
"SettingsTabGraphicsAspectRatio": "En-Boy Oranı:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -212,9 +207,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Hepsi",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Hepsi",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Hata Ayıklama Loglarını Etkinleştir",
|
"SettingsTabLoggingEnableDebugLogs": "Hata Ayıklama Loglarını Etkinleştir",
|
||||||
"SettingsTabInput": "Giriş Yöntemi",
|
"SettingsTabInput": "Giriş Yöntemi",
|
||||||
"SettingsTabSystemEnableDockedMode": "Docked Modu Etkinleştir",
|
"SettingsTabInputEnableDockedMode": "Docked Modu Etkinleştir",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Doğrudan Klavye Erişimi",
|
"SettingsTabInputDirectKeyboardAccess": "Doğrudan Klavye Erişimi",
|
||||||
"SettingsButtonDelete": "Sil",
|
|
||||||
"SettingsButtonSave": "Kaydet",
|
"SettingsButtonSave": "Kaydet",
|
||||||
"SettingsButtonClose": "Kapat",
|
"SettingsButtonClose": "Kapat",
|
||||||
"SettingsButtonOk": "Tamam",
|
"SettingsButtonOk": "Tamam",
|
||||||
@@ -493,10 +487,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Profil Siliniyor",
|
"DialogProfileDeleteProfileTitle": "Profil Siliniyor",
|
||||||
"DialogProfileDeleteProfileMessage": "Bu eylem geri döndürülemez, devam etmek istediğinizden emin misiniz?",
|
"DialogProfileDeleteProfileMessage": "Bu eylem geri döndürülemez, devam etmek istediğinizden emin misiniz?",
|
||||||
"DialogWarning": "Uyarı",
|
"DialogWarning": "Uyarı",
|
||||||
"DialogCustomSettingsDeleteMessage": "Şunun için özel ayarları silmek üzeresiniz:\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
|
||||||
"DialogPPTCDeletionMessage": "Belirtilen PPTC cache silinecek :\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
"DialogPPTCDeletionMessage": "Belirtilen PPTC cache silinecek :\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Belirtilen PPTC cache temizlenirken hata {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Belirtilen PPTC cache temizlenirken hata {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Şuradan tüm PPTC verilerini silmek üzeresiniz:\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Belirtilen Shader cache silinecek :\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
"DialogShaderDeletionMessage": "Belirtilen Shader cache silinecek :\n\n{0}\n\nDevam etmek istediğinizden emin misiniz?",
|
||||||
"DialogShaderDeletionErrorMessage": "Belirtilen Shader cache temizlenirken hata {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Belirtilen Shader cache temizlenirken hata {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx bir hata ile karşılaştı",
|
"DialogRyujinxErrorMessage": "Ryujinx bir hata ile karşılaştı",
|
||||||
@@ -535,6 +528,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Lütfen yeni bir oyun açmadan önce emülasyonu durdurun veya emülatörü kapatın.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Lütfen yeni bir oyun açmadan önce emülasyonu durdurun veya emülatörü kapatın.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Belirtilen dosya seçilen oyun için güncelleme içermiyor!",
|
"DialogUpdateAddUpdateErrorMessage": "Belirtilen dosya seçilen oyun için güncelleme içermiyor!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Uyarı - Backend Threading",
|
"DialogSettingsBackendThreadingWarningTitle": "Uyarı - Backend Threading",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Bu seçeneğin tamamen uygulanması için Ryujinx'in kapatıp açılması gerekir. Kullandığınız işletim sistemine bağlı olarak, Ryujinx'in multithreading'ini kullanırken driver'ınızın multithreading seçeneğini kapatmanız gerekebilir.",
|
||||||
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
"DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Özellikler",
|
"SettingsTabGraphicsFeaturesOptions": "Özellikler",
|
||||||
|
|||||||
@@ -68,10 +68,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "Відкриває вікно керування оновленням заголовка",
|
"GameListContextMenuManageTitleUpdatesToolTip": "Відкриває вікно керування оновленням заголовка",
|
||||||
"GameListContextMenuManageDlc": "Керування DLC",
|
"GameListContextMenuManageDlc": "Керування DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "Відкриває вікно керування DLC",
|
"GameListContextMenuManageDlcToolTip": "Відкриває вікно керування DLC",
|
||||||
"GameListContextMenuManageCustomSettings": "Керувати файлом користувацьких налаштувань",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "Керувати користувацькими налаштуваннями для вибраного застосунку",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "Відкрити каталог користувацьких налаштувань",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "Відкрити каталог, що містить користувацькі налаштування застосунку",
|
|
||||||
"GameListContextMenuCacheManagement": "Керування кешем",
|
"GameListContextMenuCacheManagement": "Керування кешем",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "Очистити кеш PPTC",
|
"GameListContextMenuCacheManagementPurgePptc": "Очистити кеш PPTC",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "Видаляє кеш PPTC програми",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "Видаляє кеш PPTC програми",
|
||||||
@@ -179,12 +175,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "Роздільна здатність:",
|
"SettingsTabGraphicsResolutionScale": "Роздільна здатність:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "Користувацька (не рекомендовано)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "Стандартний (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Не рекомендується)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "Співвідношення сторін:",
|
"SettingsTabGraphicsAspectRatio": "Співвідношення сторін:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -215,9 +210,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Все",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Все",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Увімкнути журнали налагодження",
|
"SettingsTabLoggingEnableDebugLogs": "Увімкнути журнали налагодження",
|
||||||
"SettingsTabInput": "Введення",
|
"SettingsTabInput": "Введення",
|
||||||
"SettingsTabSystemEnableDockedMode": "Режим док-станції",
|
"SettingsTabInputEnableDockedMode": "Режим док-станції",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "Прямий доступ з клавіатури",
|
"SettingsTabInputDirectKeyboardAccess": "Прямий доступ з клавіатури",
|
||||||
"SettingsButtonDelete": "Видалити",
|
|
||||||
"SettingsButtonSave": "Зберегти",
|
"SettingsButtonSave": "Зберегти",
|
||||||
"SettingsButtonClose": "Закрити",
|
"SettingsButtonClose": "Закрити",
|
||||||
"SettingsButtonOk": "Гаразд",
|
"SettingsButtonOk": "Гаразд",
|
||||||
@@ -496,10 +490,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "Видалення профілю",
|
"DialogProfileDeleteProfileTitle": "Видалення профілю",
|
||||||
"DialogProfileDeleteProfileMessage": "Цю дію неможливо скасувати. Ви впевнені, що бажаєте продовжити?",
|
"DialogProfileDeleteProfileMessage": "Цю дію неможливо скасувати. Ви впевнені, що бажаєте продовжити?",
|
||||||
"DialogWarning": "Увага",
|
"DialogWarning": "Увага",
|
||||||
"DialogCustomSettingsDeleteMessage": "Ви збираєтеся видалити користувацькі налаштування для:\n\n{0}\n\nВи впевнені, що хочете продовжити?",
|
|
||||||
"DialogPPTCDeletionMessage": "Ви збираєтеся видалити кеш PPTC для:\n\n{0}\n\nВи впевнені, що бажаєте продовжити?",
|
"DialogPPTCDeletionMessage": "Ви збираєтеся видалити кеш PPTC для:\n\n{0}\n\nВи впевнені, що бажаєте продовжити?",
|
||||||
"DialogPPTCDeletionErrorMessage": "Помилка очищення кешу PPTC на {0}: {1}",
|
"DialogPPTCDeletionErrorMessage": "Помилка очищення кешу PPTC на {0}: {1}",
|
||||||
"DialogPPTCNukeMessage": "Ви збираєтеся видалити всі дані PPTC з:\n\n{0}\n\nВи впевнені, що хочете продовжити?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "Ви збираєтеся видалити кеш шейдерів для:\n\n{0}\n\nВи впевнені, що бажаєте продовжити?",
|
"DialogShaderDeletionMessage": "Ви збираєтеся видалити кеш шейдерів для:\n\n{0}\n\nВи впевнені, що бажаєте продовжити?",
|
||||||
"DialogShaderDeletionErrorMessage": "Помилка очищення кешу шейдерів на {0}: {1}",
|
"DialogShaderDeletionErrorMessage": "Помилка очищення кешу шейдерів на {0}: {1}",
|
||||||
"DialogRyujinxErrorMessage": "У Ryujinx сталася помилка",
|
"DialogRyujinxErrorMessage": "У Ryujinx сталася помилка",
|
||||||
@@ -538,6 +531,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "Зупиніть емуляцію або закрийте емулятор перед запуском іншої гри.",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "Зупиніть емуляцію або закрийте емулятор перед запуском іншої гри.",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "Зазначений файл не містить оновлення для вибраного заголовка!",
|
"DialogUpdateAddUpdateErrorMessage": "Зазначений файл не містить оновлення для вибраного заголовка!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "Попередження - потокове керування сервером",
|
"DialogSettingsBackendThreadingWarningTitle": "Попередження - потокове керування сервером",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx потрібно перезапустити після зміни цього параметра, щоб він застосовувався повністю. Залежно від вашої платформи вам може знадобитися вручну вимкнути власну багатопотоковість драйвера під час використання Ryujinx.",
|
||||||
"DialogModManagerDeletionWarningMessage": "Ви збираєтесь видалити модифікацію: {0}\n\nВи дійсно бажаєте продовжити?",
|
"DialogModManagerDeletionWarningMessage": "Ви збираєтесь видалити модифікацію: {0}\n\nВи дійсно бажаєте продовжити?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "Ви збираєтесь видалити всі модифікації для цього Додатка.\n\nВи дійсно бажаєте продовжити?",
|
"DialogModManagerDeletionAllWarningMessage": "Ви збираєтесь видалити всі модифікації для цього Додатка.\n\nВи дійсно бажаєте продовжити?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "Особливості",
|
"SettingsTabGraphicsFeaturesOptions": "Особливості",
|
||||||
|
|||||||
@@ -68,10 +68,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "打开游戏更新管理窗口",
|
"GameListContextMenuManageTitleUpdatesToolTip": "打开游戏更新管理窗口",
|
||||||
"GameListContextMenuManageDlc": "管理 DLC",
|
"GameListContextMenuManageDlc": "管理 DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "打开 DLC 管理窗口",
|
"GameListContextMenuManageDlcToolTip": "打开 DLC 管理窗口",
|
||||||
"GameListContextMenuManageCustomSettings": "管理自定义设置文件",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "管理所选应用程序的自定义设置",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "打开自定义设置目录",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "打开包含应用程序自定义设置的目录",
|
|
||||||
"GameListContextMenuCacheManagement": "缓存管理",
|
"GameListContextMenuCacheManagement": "缓存管理",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "清除 PPTC 缓存文件",
|
"GameListContextMenuCacheManagementPurgePptc": "清除 PPTC 缓存文件",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "删除游戏的 PPTC 缓存文件,下次启动游戏时重新编译生成 PPTC 缓存文件",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "删除游戏的 PPTC 缓存文件,下次启动游戏时重新编译生成 PPTC 缓存文件",
|
||||||
@@ -179,12 +175,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8x",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
|
||||||
"SettingsTabGraphicsResolutionScale": "分辨率缩放:",
|
"SettingsTabGraphicsResolutionScale": "分辨率缩放:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "自定义(不推荐)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "原生 (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2 倍 (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3 倍 (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4 倍 (2880p/4320p) (不推荐)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "宽高比:",
|
"SettingsTabGraphicsAspectRatio": "宽高比:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -215,9 +210,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "启用调试日志",
|
"SettingsTabLoggingEnableDebugLogs": "启用调试日志",
|
||||||
"SettingsTabInput": "输入",
|
"SettingsTabInput": "输入",
|
||||||
"SettingsTabSystemEnableDockedMode": "主机模式",
|
"SettingsTabInputEnableDockedMode": "主机模式",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "直通键盘控制",
|
"SettingsTabInputDirectKeyboardAccess": "直通键盘控制",
|
||||||
"SettingsButtonDelete": "删除",
|
|
||||||
"SettingsButtonSave": "保存",
|
"SettingsButtonSave": "保存",
|
||||||
"SettingsButtonClose": "关闭",
|
"SettingsButtonClose": "关闭",
|
||||||
"SettingsButtonOk": "确定",
|
"SettingsButtonOk": "确定",
|
||||||
@@ -496,10 +490,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "删除配置文件",
|
"DialogProfileDeleteProfileTitle": "删除配置文件",
|
||||||
"DialogProfileDeleteProfileMessage": "删除后不可恢复,确认删除吗?",
|
"DialogProfileDeleteProfileMessage": "删除后不可恢复,确认删除吗?",
|
||||||
"DialogWarning": "警告",
|
"DialogWarning": "警告",
|
||||||
"DialogCustomSettingsDeleteMessage": "您即将删除以下项目的自定义设置:\n\n{0}\n\n您确定要继续吗?",
|
|
||||||
"DialogPPTCDeletionMessage": "您即将删除:\n\n{0} 的 PPTC 缓存文件\n\n确定吗?",
|
"DialogPPTCDeletionMessage": "您即将删除:\n\n{0} 的 PPTC 缓存文件\n\n确定吗?",
|
||||||
"DialogPPTCDeletionErrorMessage": "清除 {0} 的 PPTC 缓存文件时出错:{1}",
|
"DialogPPTCDeletionErrorMessage": "清除 {0} 的 PPTC 缓存文件时出错:{1}",
|
||||||
"DialogPPTCNukeMessage": "您即将清除以下项目的所有 PPTC 数据:\n\n{0}\n\n您确定要继续吗?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "您即将删除:\n\n{0} 的着色器缓存文件\n\n确定吗?",
|
"DialogShaderDeletionMessage": "您即将删除:\n\n{0} 的着色器缓存文件\n\n确定吗?",
|
||||||
"DialogShaderDeletionErrorMessage": "清除 {0} 的着色器缓存文件时出错:{1}",
|
"DialogShaderDeletionErrorMessage": "清除 {0} 的着色器缓存文件时出错:{1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx 模拟器发生错误",
|
"DialogRyujinxErrorMessage": "Ryujinx 模拟器发生错误",
|
||||||
@@ -538,6 +531,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "请停止模拟或关闭模拟器,再启动另一个游戏。",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "请停止模拟或关闭模拟器,再启动另一个游戏。",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "选择的文件不是当前游戏的更新!",
|
"DialogUpdateAddUpdateErrorMessage": "选择的文件不是当前游戏的更新!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "警告 - 图形引擎多线程",
|
"DialogSettingsBackendThreadingWarningTitle": "警告 - 图形引擎多线程",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "更改此选项后,必须重启 Ryujinx 模拟器才能生效。\n\n当启用图形引擎多线程时,根据显卡不同,您可能需要手动禁用显卡驱动程序自身的多线程(线程优化)。",
|
||||||
"DialogModManagerDeletionWarningMessage": "您即将删除 MOD:{0} \n\n确定吗?",
|
"DialogModManagerDeletionWarningMessage": "您即将删除 MOD:{0} \n\n确定吗?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "您即将删除该游戏的所有 MOD,\n\n确定吗?",
|
"DialogModManagerDeletionAllWarningMessage": "您即将删除该游戏的所有 MOD,\n\n确定吗?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "功能",
|
"SettingsTabGraphicsFeaturesOptions": "功能",
|
||||||
|
|||||||
@@ -68,10 +68,6 @@
|
|||||||
"GameListContextMenuManageTitleUpdatesToolTip": "開啟遊戲更新管理視窗",
|
"GameListContextMenuManageTitleUpdatesToolTip": "開啟遊戲更新管理視窗",
|
||||||
"GameListContextMenuManageDlc": "管理 DLC",
|
"GameListContextMenuManageDlc": "管理 DLC",
|
||||||
"GameListContextMenuManageDlcToolTip": "開啟 DLC 管理視窗",
|
"GameListContextMenuManageDlcToolTip": "開啟 DLC 管理視窗",
|
||||||
"GameListContextMenuManageCustomSettings": "管理自訂設定檔案",
|
|
||||||
"GameListContextMenuManageCustomSettingsToolTip": "管理所選應用程式的自訂設定",
|
|
||||||
"GameListContextMenuCustomSettingsOpen": "開啟自訂設定目錄",
|
|
||||||
"GameListContextMenuCustomSettingsOpenToolTip": "開啟包含應用程式自訂設定的目錄",
|
|
||||||
"GameListContextMenuCacheManagement": "快取管理",
|
"GameListContextMenuCacheManagement": "快取管理",
|
||||||
"GameListContextMenuCacheManagementPurgePptc": "佇列 PPTC 重建",
|
"GameListContextMenuCacheManagementPurgePptc": "佇列 PPTC 重建",
|
||||||
"GameListContextMenuCacheManagementPurgePptcToolTip": "下一次啟動遊戲時,觸發 PPTC 進行重建",
|
"GameListContextMenuCacheManagementPurgePptcToolTip": "下一次啟動遊戲時,觸發 PPTC 進行重建",
|
||||||
@@ -179,12 +175,11 @@
|
|||||||
"SettingsTabGraphicsAnisotropicFiltering8x": "8 倍",
|
"SettingsTabGraphicsAnisotropicFiltering8x": "8 倍",
|
||||||
"SettingsTabGraphicsAnisotropicFiltering16x": "16 倍",
|
"SettingsTabGraphicsAnisotropicFiltering16x": "16 倍",
|
||||||
"SettingsTabGraphicsResolutionScale": "解析度比例:",
|
"SettingsTabGraphicsResolutionScale": "解析度比例:",
|
||||||
"SettingsTabGraphicsResolutionScale05x": "0.5x (360p/540p)",
|
"SettingsTabGraphicsResolutionScaleCustom": "自訂 (不建議使用)",
|
||||||
"SettingsTabGraphicsResolutionScale075x": "0.75x (540p/810p)",
|
"SettingsTabGraphicsResolutionScaleNative": "原生 (720p/1080p)",
|
||||||
"SettingsTabGraphicsResolutionScale10x": "1.0x (720p/1080p)",
|
"SettingsTabGraphicsResolutionScale2x": "2 倍 (1440p/2160p)",
|
||||||
"SettingsTabGraphicsResolutionScale20x": "2.0x (1440p/2160p)",
|
"SettingsTabGraphicsResolutionScale3x": "3 倍 (2160p/3240p)",
|
||||||
"SettingsTabGraphicsResolutionScale30x": "3.0x (2160p/3240p)",
|
"SettingsTabGraphicsResolutionScale4x": "4 倍 (2880p/4320p) (不建議使用)",
|
||||||
"SettingsTabGraphicsResolutionScale40x": "4.0x (2880p/4320p)",
|
|
||||||
"SettingsTabGraphicsAspectRatio": "顯示長寬比例:",
|
"SettingsTabGraphicsAspectRatio": "顯示長寬比例:",
|
||||||
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
"SettingsTabGraphicsAspectRatio4x3": "4:3",
|
||||||
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
"SettingsTabGraphicsAspectRatio16x9": "16:9",
|
||||||
@@ -215,9 +210,8 @@
|
|||||||
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "啟用偵錯日誌",
|
"SettingsTabLoggingEnableDebugLogs": "啟用偵錯日誌",
|
||||||
"SettingsTabInput": "輸入",
|
"SettingsTabInput": "輸入",
|
||||||
"SettingsTabSystemEnableDockedMode": "底座模式",
|
"SettingsTabInputEnableDockedMode": "底座模式",
|
||||||
"SettingsTabInputDirectKeyboardAccess": "鍵盤直接存取",
|
"SettingsTabInputDirectKeyboardAccess": "鍵盤直接存取",
|
||||||
"SettingsButtonDelete": "刪除",
|
|
||||||
"SettingsButtonSave": "儲存",
|
"SettingsButtonSave": "儲存",
|
||||||
"SettingsButtonClose": "關閉",
|
"SettingsButtonClose": "關閉",
|
||||||
"SettingsButtonOk": "確定",
|
"SettingsButtonOk": "確定",
|
||||||
@@ -496,10 +490,9 @@
|
|||||||
"DialogProfileDeleteProfileTitle": "刪除設定檔",
|
"DialogProfileDeleteProfileTitle": "刪除設定檔",
|
||||||
"DialogProfileDeleteProfileMessage": "此動作不可復原,您確定要繼續嗎?",
|
"DialogProfileDeleteProfileMessage": "此動作不可復原,您確定要繼續嗎?",
|
||||||
"DialogWarning": "警告",
|
"DialogWarning": "警告",
|
||||||
"DialogCustomSettingsDeleteMessage": "您即將刪除以下項目的自訂設定:\n\n{0}\n\n您確定要繼續嗎?",
|
|
||||||
"DialogPPTCDeletionMessage": "您將在下一次啟動時佇列重建以下遊戲的 PPTC:\n\n{0}\n\n您確定要繼續嗎?",
|
"DialogPPTCDeletionMessage": "您將在下一次啟動時佇列重建以下遊戲的 PPTC:\n\n{0}\n\n您確定要繼續嗎?",
|
||||||
"DialogPPTCDeletionErrorMessage": "在 {0} 清除 PPTC 快取時出錯: {1}",
|
"DialogPPTCDeletionErrorMessage": "在 {0} 清除 PPTC 快取時出錯: {1}",
|
||||||
"DialogPPTCNukeMessage": "您即將清除以下項目的所有 PPTC 資料:\n\n{0}\n\n您確定要繼續嗎?",
|
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
|
||||||
"DialogShaderDeletionMessage": "您將刪除以下遊戲的著色器快取:\n\n{0}\n\n您確定要繼續嗎?",
|
"DialogShaderDeletionMessage": "您將刪除以下遊戲的著色器快取:\n\n{0}\n\n您確定要繼續嗎?",
|
||||||
"DialogShaderDeletionErrorMessage": "在 {0} 清除著色器快取時出錯: {1}",
|
"DialogShaderDeletionErrorMessage": "在 {0} 清除著色器快取時出錯: {1}",
|
||||||
"DialogRyujinxErrorMessage": "Ryujinx 遇到錯誤",
|
"DialogRyujinxErrorMessage": "Ryujinx 遇到錯誤",
|
||||||
@@ -538,6 +531,7 @@
|
|||||||
"DialogLoadAppGameAlreadyLoadedSubMessage": "請停止模擬或關閉模擬器,然後再啟動另一款遊戲。",
|
"DialogLoadAppGameAlreadyLoadedSubMessage": "請停止模擬或關閉模擬器,然後再啟動另一款遊戲。",
|
||||||
"DialogUpdateAddUpdateErrorMessage": "指定檔案不包含所選遊戲的更新!",
|
"DialogUpdateAddUpdateErrorMessage": "指定檔案不包含所選遊戲的更新!",
|
||||||
"DialogSettingsBackendThreadingWarningTitle": "警告 - 後端執行緒處理中",
|
"DialogSettingsBackendThreadingWarningTitle": "警告 - 後端執行緒處理中",
|
||||||
|
"DialogSettingsBackendThreadingWarningMessage": "變更此選項後,必須重新啟動 Ryujinx 才能完全生效。使用 Ryujinx 的多執行緒功能時,可能需要手動停用驅動程式本身的多執行緒功能,這取決於您的平台。",
|
||||||
"DialogModManagerDeletionWarningMessage": "您將刪除模組: {0}\n\n您確定要繼續嗎?",
|
"DialogModManagerDeletionWarningMessage": "您將刪除模組: {0}\n\n您確定要繼續嗎?",
|
||||||
"DialogModManagerDeletionAllWarningMessage": "您即將刪除此遊戲的所有模組。\n\n您確定要繼續嗎?",
|
"DialogModManagerDeletionAllWarningMessage": "您即將刪除此遊戲的所有模組。\n\n您確定要繼續嗎?",
|
||||||
"SettingsTabGraphicsFeaturesOptions": "功能",
|
"SettingsTabGraphicsFeaturesOptions": "功能",
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Ryujinx.Headless
|
|||||||
HideCursorMode = configurationState.HideCursor;
|
HideCursorMode = configurationState.HideCursor;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DisablePTC)))
|
if (NeedsOverride(nameof(DisablePTC)))
|
||||||
DisablePTC = !configurationState.System.EnablePptc;
|
DisablePTC = !configurationState.System.EnablePtc;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(EnableInternetAccess)))
|
if (NeedsOverride(nameof(EnableInternetAccess)))
|
||||||
EnableInternetAccess = configurationState.System.EnableInternetAccess;
|
EnableInternetAccess = configurationState.System.EnableInternetAccess;
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ using Ryujinx.Graphics.GAL.Multithreading;
|
|||||||
using Ryujinx.Graphics.Gpu;
|
using Ryujinx.Graphics.Gpu;
|
||||||
using Ryujinx.Graphics.OpenGL;
|
using Ryujinx.Graphics.OpenGL;
|
||||||
using Ryujinx.HLE.HOS.Applets;
|
using Ryujinx.HLE.HOS.Applets;
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
||||||
using Ryujinx.HLE.Loaders.Processes;
|
using Ryujinx.HLE.Loaders.Processes;
|
||||||
using Ryujinx.HLE.UI;
|
using Ryujinx.HLE.UI;
|
||||||
@@ -29,7 +28,6 @@ using static SDL.SDL3;
|
|||||||
using AntiAliasing = Ryujinx.Common.Configuration.AntiAliasing;
|
using AntiAliasing = Ryujinx.Common.Configuration.AntiAliasing;
|
||||||
using ScalingFilter = Ryujinx.Common.Configuration.ScalingFilter;
|
using ScalingFilter = Ryujinx.Common.Configuration.ScalingFilter;
|
||||||
using Switch = Ryujinx.HLE.Switch;
|
using Switch = Ryujinx.HLE.Switch;
|
||||||
using UserProfile = Ryujinx.HLE.HOS.Services.Account.Acc.UserProfile;
|
|
||||||
|
|
||||||
namespace Ryujinx.Headless
|
namespace Ryujinx.Headless
|
||||||
{
|
{
|
||||||
@@ -533,7 +531,7 @@ namespace Ryujinx.Headless
|
|||||||
Exit();
|
Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DisplayErrorAppletDialog(string title, string message, string[] buttonsText, (uint Module, uint Description)? errorCode = null)
|
public bool DisplayErrorAppletDialog(string title, string message, string[] buttonsText)
|
||||||
{
|
{
|
||||||
SDL_MessageBoxButtonData[] buttons = new SDL_MessageBoxButtonData[buttonsText.Length];
|
SDL_MessageBoxButtonData[] buttons = new SDL_MessageBoxButtonData[buttonsText.Length];
|
||||||
|
|
||||||
@@ -592,10 +590,5 @@ namespace Ryujinx.Headless
|
|||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserProfile ShowPlayerSelectDialog()
|
|
||||||
{
|
|
||||||
return AccountSaveDataManager.GetLastUsedUser();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,24 +169,4 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<TrimmerRootDescriptor Include="TrimmerRootDescriptor.xml" />
|
<TrimmerRootDescriptor Include="TrimmerRootDescriptor.xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Compile Update="UI\Applet\UserSelectorDialog.axaml.cs">
|
|
||||||
<DependentUpon>UserSelectorDialog.axaml</DependentUpon>
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Update="UI\Views\Settings\CustomSettingsSystemView.axaml.cs">
|
|
||||||
<DependentUpon>CustomSettingsSystemView.axaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="UI\Views\Settings\CustomSettingsGraphicsView.axaml.cs">
|
|
||||||
<DependentUpon>CustomSettingsGraphicsView.axaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="UI\Windows\CustomSettingsWindow.axaml.cs">
|
|
||||||
<DependentUpon>CustomSettingsWindow.axaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="UI\Views\Settings\CustomSettingsAudioView.axaml.cs">
|
|
||||||
<DependentUpon>CustomSettingsAudioView.axaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,23 +1,17 @@
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
using FluentAvalonia.UI.Controls;
|
using FluentAvalonia.UI.Controls;
|
||||||
using Gommon;
|
|
||||||
using Ryujinx.Ava.Common.Locale;
|
using Ryujinx.Ava.Common.Locale;
|
||||||
using Ryujinx.Ava.UI.Controls;
|
using Ryujinx.Ava.UI.Controls;
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
using Ryujinx.Ava.UI.Helpers;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
|
||||||
using Ryujinx.Ava.UI.Windows;
|
using Ryujinx.Ava.UI.Windows;
|
||||||
using Ryujinx.Common;
|
|
||||||
using Ryujinx.HLE;
|
using Ryujinx.HLE;
|
||||||
using Ryujinx.HLE.HOS.Applets;
|
using Ryujinx.HLE.HOS.Applets;
|
||||||
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
|
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
|
||||||
using Ryujinx.HLE.UI;
|
using Ryujinx.HLE.UI;
|
||||||
using Ryujinx.UI.Common.Configuration;
|
using Ryujinx.UI.Common.Configuration;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Applet
|
namespace Ryujinx.Ava.UI.Applet
|
||||||
@@ -221,7 +215,7 @@ namespace Ryujinx.Ava.UI.Applet
|
|||||||
_parent.ViewModel.AppHost?.Stop();
|
_parent.ViewModel.AppHost?.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DisplayErrorAppletDialog(string title, string message, string[] buttons, (uint Module, uint Description)? errorCode = null)
|
public bool DisplayErrorAppletDialog(string title, string message, string[] buttons)
|
||||||
{
|
{
|
||||||
ManualResetEvent dialogCloseEvent = new(false);
|
ManualResetEvent dialogCloseEvent = new(false);
|
||||||
|
|
||||||
@@ -262,59 +256,9 @@ namespace Ryujinx.Ava.UI.Applet
|
|||||||
return showDetails;
|
return showDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDynamicTextInputHandler CreateDynamicTextInputHandler() => new AvaloniaDynamicTextInputHandler(_parent);
|
public IDynamicTextInputHandler CreateDynamicTextInputHandler()
|
||||||
|
|
||||||
public UserProfile ShowPlayerSelectDialog()
|
|
||||||
{
|
{
|
||||||
UserId selected = UserId.Null;
|
return new AvaloniaDynamicTextInputHandler(_parent);
|
||||||
byte[] defaultGuestImage = EmbeddedResources.Read("Ryujinx.HLE/HOS/Services/Account/Acc/GuestUserImage.jpg");
|
|
||||||
UserProfile guest = new UserProfile(new UserId("00000000000000000000000000000080"), "Guest", defaultGuestImage);
|
|
||||||
|
|
||||||
ManualResetEvent dialogCloseEvent = new(false);
|
|
||||||
|
|
||||||
Dispatcher.UIThread.InvokeAsync(async () =>
|
|
||||||
{
|
|
||||||
ObservableCollection<BaseModel> profiles = [];
|
|
||||||
NavigationDialogHost nav = new();
|
|
||||||
|
|
||||||
_parent.AccountManager.GetAllUsers()
|
|
||||||
.OrderBy(x => x.Name)
|
|
||||||
.ForEach(profile => profiles.Add(new Models.UserProfile(profile, nav)));
|
|
||||||
|
|
||||||
profiles.Add(new Models.UserProfile(guest, nav));
|
|
||||||
ProfileSelectorDialogViewModel viewModel = new()
|
|
||||||
{
|
|
||||||
Profiles = profiles,
|
|
||||||
SelectedUserId = _parent.AccountManager.LastOpenedUser.UserId
|
|
||||||
};
|
|
||||||
(selected, _) = await ProfileSelectorDialog.ShowInputDialog(viewModel);
|
|
||||||
|
|
||||||
dialogCloseEvent.Set();
|
|
||||||
});
|
|
||||||
|
|
||||||
dialogCloseEvent.WaitOne();
|
|
||||||
|
|
||||||
UserProfile profile = _parent.AccountManager.LastOpenedUser;
|
|
||||||
if (selected == guest.UserId)
|
|
||||||
{
|
|
||||||
profile = guest;
|
|
||||||
}
|
|
||||||
else if (selected == UserId.Null)
|
|
||||||
{
|
|
||||||
profile = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (UserProfile p in _parent.AccountManager.GetAllUsers())
|
|
||||||
{
|
|
||||||
if (p.UserId == selected)
|
|
||||||
{
|
|
||||||
profile = p;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return profile;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TakeScreenshot()
|
public void TakeScreenshot()
|
||||||
|
|||||||
@@ -1,121 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="Ryujinx.Ava.UI.Applet.ProfileSelectorDialog"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
|
|
||||||
xmlns:models="clr-namespace:Ryujinx.Ava.UI.Models"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
d:DesignHeight="450"
|
|
||||||
MinWidth="500"
|
|
||||||
d:DesignWidth="800"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
Focusable="True"
|
|
||||||
x:DataType="viewModels:ProfileSelectorDialogViewModel">
|
|
||||||
|
|
||||||
<UserControl.Resources>
|
|
||||||
<helpers:BitmapArrayValueConverter x:Key="ByteImage" />
|
|
||||||
</UserControl.Resources>
|
|
||||||
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:ProfileSelectorDialogViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
|
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition />
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
|
|
||||||
<Border
|
|
||||||
CornerRadius="5"
|
|
||||||
BorderBrush="{DynamicResource AppListHoverBackgroundColor}"
|
|
||||||
BorderThickness="1">
|
|
||||||
|
|
||||||
<ListBox
|
|
||||||
MaxHeight="300"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Background="Transparent"
|
|
||||||
ItemsSource="{Binding Profiles}"
|
|
||||||
SelectionChanged="ProfilesList_SelectionChanged">
|
|
||||||
|
|
||||||
<ListBox.ItemsPanel>
|
|
||||||
<ItemsPanelTemplate>
|
|
||||||
<WrapPanel
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Orientation="Horizontal" />
|
|
||||||
</ItemsPanelTemplate>
|
|
||||||
</ListBox.ItemsPanel>
|
|
||||||
|
|
||||||
<ListBox.Styles>
|
|
||||||
<Style Selector="ListBoxItem">
|
|
||||||
<Setter Property="Margin" Value="5 5 0 5" />
|
|
||||||
<Setter Property="CornerRadius" Value="5" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="Rectangle#SelectionIndicator">
|
|
||||||
<Setter Property="Opacity" Value="0" />
|
|
||||||
</Style>
|
|
||||||
</ListBox.Styles>
|
|
||||||
|
|
||||||
<ListBox.DataTemplates>
|
|
||||||
<DataTemplate
|
|
||||||
DataType="models:UserProfile">
|
|
||||||
<Grid
|
|
||||||
PointerEntered="Grid_PointerEntered"
|
|
||||||
PointerExited="Grid_OnPointerExited">
|
|
||||||
<Border
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
ClipToBounds="True"
|
|
||||||
CornerRadius="5"
|
|
||||||
Background="{Binding BackgroundColor}">
|
|
||||||
<StackPanel
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch">
|
|
||||||
<Image
|
|
||||||
Width="96"
|
|
||||||
Height="96"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Top"
|
|
||||||
Source="{Binding Image, Converter={StaticResource ByteImage}}" />
|
|
||||||
<TextBlock
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
MaxWidth="90"
|
|
||||||
Text="{Binding Name}"
|
|
||||||
TextAlignment="Center"
|
|
||||||
TextWrapping="Wrap"
|
|
||||||
TextTrimming="CharacterEllipsis"
|
|
||||||
MaxLines="2"
|
|
||||||
Margin="5" />
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
</Grid>
|
|
||||||
</DataTemplate>
|
|
||||||
<DataTemplate
|
|
||||||
DataType="viewModels:BaseModel">
|
|
||||||
<Panel
|
|
||||||
Height="118"
|
|
||||||
Width="96">
|
|
||||||
<Panel.Styles>
|
|
||||||
<Style Selector="Panel">
|
|
||||||
<Setter Property="Background" Value="{DynamicResource ListBoxBackground}" />
|
|
||||||
</Style>
|
|
||||||
</Panel.Styles>
|
|
||||||
</Panel>
|
|
||||||
</DataTemplate>
|
|
||||||
</ListBox.DataTemplates>
|
|
||||||
</ListBox>
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
<StackPanel
|
|
||||||
Grid.Row="1"
|
|
||||||
Margin="0 24 0 0"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
Spacing="10">
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Input;
|
|
||||||
using FluentAvalonia.UI.Controls;
|
|
||||||
using Ryujinx.Ava.Common.Locale;
|
|
||||||
using Ryujinx.Ava.UI.Controls;
|
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
|
||||||
using Ryujinx.Common.Logging;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
|
||||||
using Ryujinx.UI.Common.Configuration;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
|
|
||||||
using UserProfileSft = Ryujinx.HLE.HOS.Services.Account.Acc.UserProfile;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Applet
|
|
||||||
{
|
|
||||||
public partial class ProfileSelectorDialog : UserControl
|
|
||||||
{
|
|
||||||
public ProfileSelectorDialogViewModel ViewModel { get; set; }
|
|
||||||
|
|
||||||
public ProfileSelectorDialog(ProfileSelectorDialogViewModel viewModel)
|
|
||||||
{
|
|
||||||
DataContext = ViewModel = viewModel;
|
|
||||||
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Grid_PointerEntered(object sender, PointerEventArgs e)
|
|
||||||
{
|
|
||||||
if (sender is Grid { DataContext: UserProfile profile })
|
|
||||||
{
|
|
||||||
profile.IsPointerOver = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Grid_OnPointerExited(object sender, PointerEventArgs e)
|
|
||||||
{
|
|
||||||
if (sender is Grid { DataContext: UserProfile profile })
|
|
||||||
{
|
|
||||||
profile.IsPointerOver = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ProfilesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (sender is ListBox listBox)
|
|
||||||
{
|
|
||||||
int selectedIndex = listBox.SelectedIndex;
|
|
||||||
|
|
||||||
if (selectedIndex >= 0 && selectedIndex < ViewModel.Profiles.Count)
|
|
||||||
{
|
|
||||||
if (ViewModel.Profiles[selectedIndex] is UserProfile userProfile)
|
|
||||||
{
|
|
||||||
ViewModel.SelectedUserId = userProfile.UserId;
|
|
||||||
Logger.Info?.Print(LogClass.UI, $"Selected: {userProfile.UserId}", "ProfileSelector");
|
|
||||||
|
|
||||||
ObservableCollection<BaseModel> newProfiles = [];
|
|
||||||
|
|
||||||
foreach (BaseModel item in ViewModel.Profiles)
|
|
||||||
{
|
|
||||||
if (item is UserProfile originalItem)
|
|
||||||
{
|
|
||||||
UserProfileSft profile = new(originalItem.UserId, originalItem.Name, originalItem.Image);
|
|
||||||
|
|
||||||
if (profile.UserId == ViewModel.SelectedUserId)
|
|
||||||
{
|
|
||||||
profile.AccountState = AccountState.Open;
|
|
||||||
}
|
|
||||||
|
|
||||||
newProfiles.Add(new UserProfile(profile, new NavigationDialogHost()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewModel.Profiles = newProfiles;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static async Task<(UserId Id, bool Result)> ShowInputDialog(ProfileSelectorDialogViewModel viewModel)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (ConfigurationState.Instance.System.SkipUserProfilesManager)
|
|
||||||
{
|
|
||||||
UserId defaultId = viewModel.SelectedUserId;
|
|
||||||
return (defaultId, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
FAContentDialog contentDialog = new()
|
|
||||||
{
|
|
||||||
Title = LocaleManager.Instance[LocaleKeys.UserProfileWindowTitle],
|
|
||||||
PrimaryButtonText = LocaleManager.Instance[LocaleKeys.Continue],
|
|
||||||
SecondaryButtonText = string.Empty,
|
|
||||||
CloseButtonText = LocaleManager.Instance[LocaleKeys.Cancel],
|
|
||||||
Content = new ProfileSelectorDialog(viewModel),
|
|
||||||
Padding = new Thickness(0)
|
|
||||||
};
|
|
||||||
|
|
||||||
UserId result = UserId.Null;
|
|
||||||
bool input = false;
|
|
||||||
|
|
||||||
contentDialog.Closed += Handler;
|
|
||||||
|
|
||||||
await ContentDialogHelper.ShowAsync(contentDialog);
|
|
||||||
|
|
||||||
return (result, input);
|
|
||||||
|
|
||||||
void Handler(FAContentDialog sender, FAContentDialogClosedEventArgs eventArgs)
|
|
||||||
{
|
|
||||||
if (eventArgs.Result == FAContentDialogResult.Primary)
|
|
||||||
{
|
|
||||||
result = viewModel.SelectedUserId;
|
|
||||||
input = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = UserId.Null;
|
|
||||||
input = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -42,10 +42,6 @@
|
|||||||
Click="OpenDownloadableContentManager_Click"
|
Click="OpenDownloadableContentManager_Click"
|
||||||
Header="{locale:Locale GameListContextMenuManageDlc}"
|
Header="{locale:Locale GameListContextMenuManageDlc}"
|
||||||
ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
|
ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
|
||||||
<MenuItem
|
|
||||||
Click="OpenCustomSettingsManager_Click"
|
|
||||||
Header="{locale:Locale GameListContextMenuManageCustomSettings}"
|
|
||||||
ToolTip.Tip="{locale:Locale GameListContextMenuManageCustomSettingsToolTip}" />
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Click="OpenCheatManager_Click"
|
Click="OpenCheatManager_Click"
|
||||||
Header="{locale:Locale GameListContextMenuManageCheat}"
|
Header="{locale:Locale GameListContextMenuManageCheat}"
|
||||||
@@ -55,10 +51,6 @@
|
|||||||
Header="{locale:Locale GameListContextMenuManageMod}"
|
Header="{locale:Locale GameListContextMenuManageMod}"
|
||||||
ToolTip.Tip="{locale:Locale GameListContextMenuManageModToolTip}" />
|
ToolTip.Tip="{locale:Locale GameListContextMenuManageModToolTip}" />
|
||||||
<Separator />
|
<Separator />
|
||||||
<MenuItem
|
|
||||||
Click="OpenCustomSettings_Click"
|
|
||||||
Header="{locale:Locale GameListContextMenuCustomSettingsOpen}"
|
|
||||||
ToolTip.Tip="{locale:Locale GameListContextMenuCustomSettingsOpenToolTip}" />
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
Click="OpenModsDirectory_Click"
|
Click="OpenModsDirectory_Click"
|
||||||
Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
|
Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
|
||||||
|
|||||||
@@ -103,23 +103,6 @@ namespace Ryujinx.Ava.UI.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void OpenCustomSettingsManager_Click(object sender, RoutedEventArgs args)
|
|
||||||
{
|
|
||||||
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
|
||||||
|
|
||||||
if (viewModel?.SelectedApplication != null)
|
|
||||||
{
|
|
||||||
await new CustomSettingsWindow(
|
|
||||||
viewModel.VirtualFileSystem,
|
|
||||||
viewModel.SelectedApplication.IdString,
|
|
||||||
viewModel.SelectedApplication.Name,
|
|
||||||
viewModel.SelectedApplication.Icon,
|
|
||||||
viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window);
|
|
||||||
|
|
||||||
viewModel.RefreshView();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void OpenCheatManager_Click(object sender, RoutedEventArgs args)
|
public async void OpenCheatManager_Click(object sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
||||||
@@ -174,54 +157,6 @@ namespace Ryujinx.Ava.UI.Controls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void ManageCustomSettings_Click(object sender, RoutedEventArgs args)
|
|
||||||
{
|
|
||||||
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
|
||||||
|
|
||||||
if (viewModel?.SelectedApplication != null)
|
|
||||||
{
|
|
||||||
await new CustomSettingsWindow(
|
|
||||||
viewModel.VirtualFileSystem,
|
|
||||||
viewModel.SelectedApplication.IdString,
|
|
||||||
viewModel.SelectedApplication.Name,
|
|
||||||
viewModel.SelectedApplication.Icon,
|
|
||||||
viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void DeleteCustomSettings_Click(object sender, RoutedEventArgs args)
|
|
||||||
{
|
|
||||||
if (sender is not MenuItem { DataContext: MainWindowViewModel { SelectedApplication: not null } viewModel })
|
|
||||||
return;
|
|
||||||
|
|
||||||
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
|
||||||
LocaleManager.Instance[LocaleKeys.DialogWarning],
|
|
||||||
LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogCustomSettingsDeleteMessage, viewModel.SelectedApplication.Name)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result == UserResult.Yes)
|
|
||||||
{
|
|
||||||
CustomSettingsHelper.DeleteCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(viewModel.SelectedApplication.Id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OpenCustomSettings_Click(object sender, RoutedEventArgs args)
|
|
||||||
{
|
|
||||||
var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
|
||||||
|
|
||||||
if (viewModel?.SelectedApplication != null)
|
|
||||||
{
|
|
||||||
string customConfigDir = Path.Combine(AppDataManager.GamesDirPath, viewModel.SelectedApplication.IdString);
|
|
||||||
|
|
||||||
if (!Directory.Exists(customConfigDir))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(customConfigDir);
|
|
||||||
}
|
|
||||||
|
|
||||||
OpenHelper.OpenFolder(customConfigDir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void PurgePtcCache_Click(object sender, RoutedEventArgs args)
|
public async void PurgePtcCache_Click(object sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
|
||||||
|
|||||||
@@ -1,359 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Media.Imaging;
|
|
||||||
using Avalonia.Threading;
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
|
||||||
using Ryujinx.Audio.Backends.OpenAL;
|
|
||||||
using Ryujinx.Audio.Backends.SDL3;
|
|
||||||
using Ryujinx.Audio.Backends.SoundIo;
|
|
||||||
using Ryujinx.Ava.Common.Locale;
|
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
|
||||||
using Ryujinx.Graphics.Vulkan;
|
|
||||||
using Ryujinx.UI.Common.Configuration;
|
|
||||||
using Ryujinx.UI.Common.Helper;
|
|
||||||
using Ryujinx.UI.Common.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.ViewModels
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsViewModel : BaseModel
|
|
||||||
{
|
|
||||||
[ObservableProperty]
|
|
||||||
private bool _isVulkanAvailable = true;
|
|
||||||
private readonly List<string> _gpuIds = [];
|
|
||||||
|
|
||||||
private int ComputePreferredGpuIndex(string PreferredGpu)
|
|
||||||
{
|
|
||||||
return _gpuIds.Contains(PreferredGpu) ? _gpuIds.IndexOf(PreferredGpu) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private string ComputePreferredGpu(int PreferredGpuIndex)
|
|
||||||
{
|
|
||||||
return _gpuIds.ElementAtOrDefault(PreferredGpuIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
private int ComputeResScaleIndex(float ResScale)
|
|
||||||
{
|
|
||||||
if (ResScale <= 0.5f)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if (ResScale <= 0.75f)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return (int)Math.Ceiling(ResScale) + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private float ComputeResScale(int ResScaleIndex)
|
|
||||||
{
|
|
||||||
switch (ResScaleIndex)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
return 0.5f;
|
|
||||||
case 1:
|
|
||||||
return 0.75f;
|
|
||||||
case 2:
|
|
||||||
return 1.0f;
|
|
||||||
case 3:
|
|
||||||
return 2.0f;
|
|
||||||
case 4:
|
|
||||||
return 3.0f;
|
|
||||||
case 5:
|
|
||||||
return 4.0f;
|
|
||||||
default:
|
|
||||||
return 1.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int ComputeMaxAnisotropyIndex(float MaxAnisotropy)
|
|
||||||
{
|
|
||||||
return MaxAnisotropy == -1.0f ? 0 : (int)(MathF.Log2(MaxAnisotropy));
|
|
||||||
}
|
|
||||||
|
|
||||||
private float ComputeMaxAnisotropy(int MaxAnisotropyIndex)
|
|
||||||
{
|
|
||||||
switch (MaxAnisotropyIndex)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
return -1.0f;
|
|
||||||
case 1:
|
|
||||||
return 2.0f;
|
|
||||||
case 2:
|
|
||||||
return 4.0f;
|
|
||||||
case 3:
|
|
||||||
return 8.0f;
|
|
||||||
case 4:
|
|
||||||
return 16.0f;
|
|
||||||
default:
|
|
||||||
return 2.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsMacOS => OperatingSystem.IsMacOS();
|
|
||||||
public bool IsOpenGLAvailable => !OperatingSystem.IsMacOS();
|
|
||||||
public bool IsHypervisorAvailable => OperatingSystem.IsMacOS() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64;
|
|
||||||
public ulong ApplicationIdBase { get; set; }
|
|
||||||
public string ApplicationName { get; set; }
|
|
||||||
public Bitmap GameIcon { get; set; }
|
|
||||||
public ObservableCollection<ComboBoxItem> AvailableGpus { get; set; }
|
|
||||||
public CustomSettingsModel CustomSettingsModel { get; set; }
|
|
||||||
public event Action CloseWindow;
|
|
||||||
|
|
||||||
// System settings
|
|
||||||
public bool EnableDockedMode { get; set; }
|
|
||||||
public int SystemLanguage { get; set; }
|
|
||||||
public int SystemRegion { get; set; }
|
|
||||||
public int DramSize { get; set; }
|
|
||||||
public bool EnableFsIntegrityChecks { get; set; }
|
|
||||||
public bool IgnoreMissingServices { get; set; }
|
|
||||||
|
|
||||||
// CPU settings
|
|
||||||
public bool EnablePptc { get; set; }
|
|
||||||
public bool EnableLowPowerPptc { get; set; }
|
|
||||||
public int MemoryManagerMode { get; set; }
|
|
||||||
public bool UseHypervisor { get; set; }
|
|
||||||
public long TurboMultiplier
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (field != value)
|
|
||||||
{
|
|
||||||
field = value;
|
|
||||||
|
|
||||||
OnPropertyChanged();
|
|
||||||
OnPropertyChanged((nameof(TurboMultiplierPercentageText)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string TurboMultiplierPercentageText => $"{TurboMultiplier}%";
|
|
||||||
|
|
||||||
// Graphics settings
|
|
||||||
public int VSyncMode { get; set; }
|
|
||||||
public int GraphicsBackend { get; set; }
|
|
||||||
public int PreferredGpuIndex { get; set; }
|
|
||||||
public bool EnableShaderCache { get; set; }
|
|
||||||
public bool EnableTextureRecompression { get; set; }
|
|
||||||
public bool EnableMacroHLE { get; set; }
|
|
||||||
public bool EnableColorSpacePassthrough { get; set; }
|
|
||||||
public bool ColorSpacePassthroughAvailable => IsMacOS;
|
|
||||||
public int ResScaleIndex { get; set; }
|
|
||||||
public int MaxAnisotropyIndex { get; set; }
|
|
||||||
public int BackendThreading { get; set; }
|
|
||||||
|
|
||||||
// Audio settings
|
|
||||||
public bool IsOpenAlEnabled { get; set; }
|
|
||||||
public bool IsSoundIoEnabled { get; set; }
|
|
||||||
public bool IsSDL3Enabled { get; set; }
|
|
||||||
public AudioBackend AudioBackend { get; set; }
|
|
||||||
|
|
||||||
public float Volume
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
field = value;
|
|
||||||
|
|
||||||
ConfigurationState.Instance.System.AudioVolume.Value = field / 100;
|
|
||||||
|
|
||||||
OnPropertyChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public CustomSettingsViewModel(string titleId, byte[] icon, string titleName)
|
|
||||||
{
|
|
||||||
AvailableGpus = [];
|
|
||||||
ApplicationIdBase = ulong.Parse(titleId, NumberStyles.HexNumber);
|
|
||||||
CustomSettingsModel = CustomSettingsHelper.LoadCustomSettingsJson(CustomSettingsHelper.PathToGameSettingsJson(ApplicationIdBase));
|
|
||||||
|
|
||||||
Task.Run(CheckSoundBackends);
|
|
||||||
|
|
||||||
if (icon is { Length: > 0 })
|
|
||||||
{
|
|
||||||
using MemoryStream ms = new(icon);
|
|
||||||
GameIcon = new Bitmap(ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Program.PreviewerDetached)
|
|
||||||
{
|
|
||||||
Task.Run(LoadAvailableGpus);
|
|
||||||
LoadCurrentConfiguration();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task CheckSoundBackends()
|
|
||||||
{
|
|
||||||
IsOpenAlEnabled = OpenALHardwareDeviceDriver.IsSupported;
|
|
||||||
IsSoundIoEnabled = SoundIoHardwareDeviceDriver.IsSupported;
|
|
||||||
IsSDL3Enabled = SDL3HardwareDeviceDriver.IsSupported;
|
|
||||||
|
|
||||||
await Dispatcher.UIThread.InvokeAsync(() =>
|
|
||||||
{
|
|
||||||
OnPropertyChanged(nameof(IsOpenAlEnabled));
|
|
||||||
OnPropertyChanged(nameof(IsSoundIoEnabled));
|
|
||||||
OnPropertyChanged(nameof(IsSDL3Enabled));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task LoadAvailableGpus()
|
|
||||||
{
|
|
||||||
AvailableGpus.Clear();
|
|
||||||
|
|
||||||
var devices = VulkanRenderer.GetPhysicalDevices();
|
|
||||||
|
|
||||||
if (devices.Length == 0)
|
|
||||||
{
|
|
||||||
IsVulkanAvailable = false;
|
|
||||||
GraphicsBackend = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var device in devices)
|
|
||||||
{
|
|
||||||
await Dispatcher.UIThread.InvokeAsync(() =>
|
|
||||||
{
|
|
||||||
_gpuIds.Add(device.Id);
|
|
||||||
|
|
||||||
AvailableGpus.Add(new ComboBoxItem { Content = $"{device.Name} {(device.IsDiscrete ? "(dGPU)" : "")}" });
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GPU configuration needs to be loaded during the async method or it will always return 0.
|
|
||||||
PreferredGpuIndex = ComputePreferredGpuIndex(ConfigurationState.Instance.Graphics.PreferredGpu.Value);
|
|
||||||
|
|
||||||
Dispatcher.UIThread.Post(() => OnPropertyChanged(nameof(PreferredGpuIndex)));
|
|
||||||
}
|
|
||||||
public void LoadCurrentConfiguration()
|
|
||||||
{
|
|
||||||
ConfigurationState config = ConfigurationState.Instance;
|
|
||||||
|
|
||||||
if (!CustomSettingsHelper.HasCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(ApplicationIdBase)))
|
|
||||||
{
|
|
||||||
// Load all settings from global configuration
|
|
||||||
EnableDockedMode = config.System.EnableDockedMode.Value;
|
|
||||||
SystemLanguage = (int)config.System.Language.Value;
|
|
||||||
SystemRegion = (int)config.System.Region.Value;
|
|
||||||
VSyncMode = (int)config.Graphics.VSyncMode.Value;
|
|
||||||
DramSize = (int)config.System.DramSize.Value;
|
|
||||||
EnableFsIntegrityChecks = config.System.EnableFsIntegrityChecks.Value;
|
|
||||||
IgnoreMissingServices = config.System.IgnoreMissingServices.Value;
|
|
||||||
EnablePptc = config.System.EnablePptc.Value;
|
|
||||||
EnableLowPowerPptc = config.System.EnableLowPowerPptc.Value;
|
|
||||||
MemoryManagerMode = (int)config.System.MemoryManagerMode.Value;
|
|
||||||
UseHypervisor = config.System.UseHypervisor.Value;
|
|
||||||
TurboMultiplier = config.System.TickScalar.Value;
|
|
||||||
GraphicsBackend = (int)config.Graphics.GraphicsBackend.Value;
|
|
||||||
PreferredGpuIndex = ComputePreferredGpuIndex(config.Graphics.PreferredGpu.Value);
|
|
||||||
EnableShaderCache = config.Graphics.EnableShaderCache.Value;
|
|
||||||
EnableTextureRecompression = config.Graphics.EnableTextureRecompression.Value;
|
|
||||||
EnableMacroHLE = config.Graphics.EnableMacroHLE.Value;
|
|
||||||
EnableColorSpacePassthrough = config.Graphics.EnableColorSpacePassthrough.Value;
|
|
||||||
ResScaleIndex = ComputeResScaleIndex(config.Graphics.ResScale);
|
|
||||||
MaxAnisotropyIndex = ComputeMaxAnisotropyIndex(config.Graphics.MaxAnisotropy);
|
|
||||||
BackendThreading = (int)config.Graphics.BackendThreading.Value;
|
|
||||||
AudioBackend = config.System.AudioBackend.Value;
|
|
||||||
Volume = config.System.AudioVolume * 100;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Load all settings from custom configuration
|
|
||||||
EnableDockedMode = CustomSettingsModel.EnableDockedMode;
|
|
||||||
SystemLanguage = CustomSettingsModel.SystemLanguage;
|
|
||||||
SystemRegion = CustomSettingsModel.SystemRegion;
|
|
||||||
VSyncMode = CustomSettingsModel.VSyncMode;
|
|
||||||
DramSize = CustomSettingsModel.DramSize;
|
|
||||||
EnableFsIntegrityChecks = CustomSettingsModel.EnableFsIntegrityChecks;
|
|
||||||
IgnoreMissingServices = CustomSettingsModel.IgnoreMissingServices;
|
|
||||||
EnablePptc = CustomSettingsModel.EnablePptc;
|
|
||||||
EnableLowPowerPptc = CustomSettingsModel.EnableLowPowerPptc;
|
|
||||||
MemoryManagerMode = CustomSettingsModel.MemoryManagerMode;
|
|
||||||
UseHypervisor = CustomSettingsModel.UseHypervisor;
|
|
||||||
TurboMultiplier = CustomSettingsModel.TickScalar;
|
|
||||||
GraphicsBackend = CustomSettingsModel.GraphicsBackend;
|
|
||||||
PreferredGpuIndex = ComputePreferredGpuIndex(CustomSettingsModel.PreferredGpu);
|
|
||||||
EnableShaderCache = CustomSettingsModel.EnableShaderCache;
|
|
||||||
EnableTextureRecompression = CustomSettingsModel.EnableTextureRecompression;
|
|
||||||
EnableMacroHLE = CustomSettingsModel.EnableMacroHLE;
|
|
||||||
EnableColorSpacePassthrough = CustomSettingsModel.EnableColorSpacePassthrough;
|
|
||||||
ResScaleIndex = ComputeResScaleIndex(CustomSettingsModel.ResScale);
|
|
||||||
MaxAnisotropyIndex = ComputeMaxAnisotropyIndex(CustomSettingsModel.MaxAnisotropy);
|
|
||||||
BackendThreading = CustomSettingsModel.BackendThreading;
|
|
||||||
AudioBackend = CustomSettingsModel.AudioBackend;
|
|
||||||
Volume = CustomSettingsModel.AudioVolume * 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DeleteSettings()
|
|
||||||
{
|
|
||||||
if (CustomSettingsHelper.HasCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(ApplicationIdBase)))
|
|
||||||
{
|
|
||||||
CustomSettingsHelper.DeleteCustomSettings(CustomSettingsHelper.PathToGameSettingsJson(ApplicationIdBase));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SaveSettings()
|
|
||||||
{
|
|
||||||
CustomSettingsModel.HasCustomSettings = true;
|
|
||||||
CustomSettingsModel.EnableDockedMode = EnableDockedMode;
|
|
||||||
CustomSettingsModel.SystemLanguage = SystemLanguage;
|
|
||||||
CustomSettingsModel.SystemRegion = SystemRegion;
|
|
||||||
CustomSettingsModel.VSyncMode = VSyncMode;
|
|
||||||
CustomSettingsModel.DramSize = DramSize;
|
|
||||||
CustomSettingsModel.EnableFsIntegrityChecks = EnableFsIntegrityChecks;
|
|
||||||
CustomSettingsModel.IgnoreMissingServices = IgnoreMissingServices;
|
|
||||||
CustomSettingsModel.EnablePptc = EnablePptc;
|
|
||||||
CustomSettingsModel.EnableLowPowerPptc = EnableLowPowerPptc;
|
|
||||||
CustomSettingsModel.MemoryManagerMode = MemoryManagerMode;
|
|
||||||
CustomSettingsModel.UseHypervisor = UseHypervisor;
|
|
||||||
CustomSettingsModel.TickScalar = TurboMultiplier;
|
|
||||||
CustomSettingsModel.GraphicsBackend = GraphicsBackend;
|
|
||||||
CustomSettingsModel.PreferredGpu = ComputePreferredGpu(PreferredGpuIndex);
|
|
||||||
CustomSettingsModel.EnableShaderCache = EnableShaderCache;
|
|
||||||
CustomSettingsModel.EnableTextureRecompression = EnableTextureRecompression;
|
|
||||||
CustomSettingsModel.EnableMacroHLE = EnableMacroHLE;
|
|
||||||
CustomSettingsModel.ResScale = ComputeResScale(ResScaleIndex);
|
|
||||||
CustomSettingsModel.MaxAnisotropy = ComputeMaxAnisotropy(MaxAnisotropyIndex);
|
|
||||||
CustomSettingsModel.BackendThreading = BackendThreading;
|
|
||||||
CustomSettingsModel.AudioBackend = AudioBackend;
|
|
||||||
CustomSettingsModel.AudioVolume = Volume / 100;
|
|
||||||
CustomSettingsHelper.SaveCustomSettingsJson(CustomSettingsHelper.PathToGameSettingsJson(ApplicationIdBase), CustomSettingsModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void DeleteButton()
|
|
||||||
{
|
|
||||||
UserResult result = await ContentDialogHelper.CreateLocalizedConfirmationDialog(
|
|
||||||
LocaleManager.Instance[LocaleKeys.DialogWarning],
|
|
||||||
LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogCustomSettingsDeleteMessage, ApplicationName)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result == UserResult.Yes)
|
|
||||||
{
|
|
||||||
DeleteSettings();
|
|
||||||
CloseWindow?.Invoke();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CancelButton()
|
|
||||||
{
|
|
||||||
CloseWindow?.Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SaveButton()
|
|
||||||
{
|
|
||||||
SaveSettings();
|
|
||||||
CloseWindow?.Invoke();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Account.Acc;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.ViewModels
|
|
||||||
{
|
|
||||||
public partial class ProfileSelectorDialogViewModel : BaseModel
|
|
||||||
{
|
|
||||||
|
|
||||||
[ObservableProperty] private UserId _selectedUserId;
|
|
||||||
|
|
||||||
[ObservableProperty] private ObservableCollection<BaseModel> _profiles = [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -20,7 +20,6 @@ using Ryujinx.Graphics.Vulkan;
|
|||||||
using Ryujinx.HLE;
|
using Ryujinx.HLE;
|
||||||
using Ryujinx.HLE.FileSystem;
|
using Ryujinx.HLE.FileSystem;
|
||||||
using Ryujinx.HLE.HOS.Services.Time.TimeZone;
|
using Ryujinx.HLE.HOS.Services.Time.TimeZone;
|
||||||
using Ryujinx.HLE.HOS.SystemState;
|
|
||||||
using Ryujinx.UI.Common.Configuration;
|
using Ryujinx.UI.Common.Configuration;
|
||||||
using Ryujinx.UI.Common.Configuration.System;
|
using Ryujinx.UI.Common.Configuration.System;
|
||||||
using System;
|
using System;
|
||||||
@@ -48,6 +47,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
|
|
||||||
private readonly Dictionary<string, string> _networkInterfaces;
|
private readonly Dictionary<string, string> _networkInterfaces;
|
||||||
|
|
||||||
|
private int _resolutionScale;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _isVulkanAvailable = true;
|
private bool _isVulkanAvailable = true;
|
||||||
|
|
||||||
@@ -68,79 +69,51 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
|
|
||||||
private bool _enableGDBStub;
|
private bool _enableGDBStub;
|
||||||
|
|
||||||
private int ComputePreferredGpuIndex(string PreferredGpu)
|
public int ResolutionScale
|
||||||
{
|
{
|
||||||
return _gpuIds.Contains(PreferredGpu) ? _gpuIds.IndexOf(PreferredGpu) : 0;
|
get => _resolutionScale;
|
||||||
}
|
set
|
||||||
|
{
|
||||||
|
_resolutionScale = value;
|
||||||
|
|
||||||
private string ComputePreferredGpu(int PreferredGpuIndex)
|
OnPropertyChanged(nameof(CustomResolutionScale));
|
||||||
{
|
OnPropertyChanged(nameof(IsCustomResolutionScaleActive));
|
||||||
return _gpuIds.ElementAtOrDefault((int)PreferredGpuIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
private int ComputeResScaleIndex(float ResScale)
|
|
||||||
{
|
|
||||||
if (ResScale <= 0.5f)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if (ResScale <= 0.75f)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return (int)Math.Ceiling(ResScale) + 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private float ComputeResScale(int ResScaleIndex)
|
public int GraphicsBackendMultithreadingIndex
|
||||||
{
|
{
|
||||||
switch (ResScaleIndex)
|
get;
|
||||||
|
set
|
||||||
{
|
{
|
||||||
case 0:
|
field = value;
|
||||||
return 0.5f;
|
|
||||||
case 1:
|
if (field != (int)ConfigurationState.Instance.Graphics.BackendThreading.Value)
|
||||||
return 0.75f;
|
{
|
||||||
case 2:
|
Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
return 1.0f;
|
ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogSettingsBackendThreadingWarningMessage],
|
||||||
case 3:
|
"",
|
||||||
return 2.0f;
|
"",
|
||||||
case 4:
|
LocaleManager.Instance[LocaleKeys.InputDialogOk],
|
||||||
return 3.0f;
|
LocaleManager.Instance[LocaleKeys.DialogSettingsBackendThreadingWarningTitle])
|
||||||
case 5:
|
);
|
||||||
return 4.0f;
|
}
|
||||||
default:
|
|
||||||
return 1.0f;
|
OnPropertyChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int ComputeMaxAnisotropyIndex(float MaxAnisotropy)
|
public float CustomResolutionScale
|
||||||
{
|
{
|
||||||
return MaxAnisotropy == -1.0f ? 0 : (int)(MathF.Log2(MaxAnisotropy));
|
get;
|
||||||
}
|
set
|
||||||
|
{
|
||||||
|
field = value;
|
||||||
|
|
||||||
private float ComputeMaxAnisotropy(int MaxAnisotropyIndex)
|
OnPropertyChanged();
|
||||||
{
|
|
||||||
switch (MaxAnisotropyIndex)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
return -1.0f;
|
|
||||||
case 1:
|
|
||||||
return 2.0f;
|
|
||||||
case 2:
|
|
||||||
return 4.0f;
|
|
||||||
case 3:
|
|
||||||
return 8.0f;
|
|
||||||
case 4:
|
|
||||||
return 16.0f;
|
|
||||||
default:
|
|
||||||
return 2.0f;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsMacOS => OperatingSystem.IsMacOS();
|
|
||||||
|
|
||||||
public bool IsOpenGLAvailable => !OperatingSystem.IsMacOS();
|
public bool IsOpenGLAvailable => !OperatingSystem.IsMacOS();
|
||||||
|
|
||||||
public bool IsHypervisorAvailable => OperatingSystem.IsMacOS() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64;
|
public bool IsHypervisorAvailable => OperatingSystem.IsMacOS() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64;
|
||||||
@@ -167,6 +140,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsMacOS => OperatingSystem.IsMacOS();
|
||||||
|
|
||||||
public bool EnableDiscordIntegration { get; set; }
|
public bool EnableDiscordIntegration { get; set; }
|
||||||
public bool CheckUpdatesOnStart { get; set; }
|
public bool CheckUpdatesOnStart { get; set; }
|
||||||
public bool ShowConfirmExit { get; set; }
|
public bool ShowConfirmExit { get; set; }
|
||||||
@@ -285,9 +260,10 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
public bool IsSoundIoEnabled { get; set; }
|
public bool IsSoundIoEnabled { get; set; }
|
||||||
public bool IsSDL3Enabled { get; set; }
|
public bool IsSDL3Enabled { get; set; }
|
||||||
public bool IsAudioToolboxEnabled { get; set; }
|
public bool IsAudioToolboxEnabled { get; set; }
|
||||||
|
public bool IsCustomResolutionScaleActive => _resolutionScale == 4;
|
||||||
public bool IsScalingFilterActive => _scalingFilter == (int)Ryujinx.Common.Configuration.ScalingFilter.Fsr;
|
public bool IsScalingFilterActive => _scalingFilter == (int)Ryujinx.Common.Configuration.ScalingFilter.Fsr;
|
||||||
|
|
||||||
public bool IsVulkanSelected => GraphicsBackend == 0;
|
public bool IsVulkanSelected => GraphicsBackendIndex == 0;
|
||||||
public bool UseHypervisor { get; set; }
|
public bool UseHypervisor { get; set; }
|
||||||
public bool DisableP2P { get; set; }
|
public bool DisableP2P { get; set; }
|
||||||
|
|
||||||
@@ -316,10 +292,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
public int Region { get; set; }
|
public int Region { get; set; }
|
||||||
public int FsGlobalAccessLogMode { get; set; }
|
public int FsGlobalAccessLogMode { get; set; }
|
||||||
public int AudioBackend { get; set; }
|
public int AudioBackend { get; set; }
|
||||||
public int ResScaleIndex { get; set; }
|
public int MaxAnisotropy { get; set; }
|
||||||
public int MaxAnisotropyIndex { get; set; }
|
|
||||||
public int AspectRatio { get; set; }
|
public int AspectRatio { get; set; }
|
||||||
public int BackendThreading { get; set; }
|
|
||||||
public int AntiAliasingEffect { get; set; }
|
public int AntiAliasingEffect { get; set; }
|
||||||
public string ScalingFilterLevelText => ScalingFilterLevel.ToString("0");
|
public string ScalingFilterLevelText => ScalingFilterLevel.ToString("0");
|
||||||
|
|
||||||
@@ -338,7 +312,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
public int MemoryMode { get; set; }
|
public int MemoryMode { get; set; }
|
||||||
public int BaseStyleIndex { get; set; }
|
public int BaseStyleIndex { get; set; }
|
||||||
|
|
||||||
public int GraphicsBackend
|
public int GraphicsBackendIndex
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
set
|
set
|
||||||
@@ -510,7 +484,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
if (devices.Length == 0)
|
if (devices.Length == 0)
|
||||||
{
|
{
|
||||||
IsVulkanAvailable = false;
|
IsVulkanAvailable = false;
|
||||||
GraphicsBackend = 1;
|
GraphicsBackendIndex = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -526,7 +500,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GPU configuration needs to be loaded during the async method or it will always return 0.
|
// GPU configuration needs to be loaded during the async method or it will always return 0.
|
||||||
PreferredGpuIndex = ComputePreferredGpuIndex(ConfigurationState.Instance.Graphics.PreferredGpu.Value);
|
PreferredGpuIndex = _gpuIds.Contains(ConfigurationState.Instance.Graphics.PreferredGpu) ?
|
||||||
|
_gpuIds.IndexOf(ConfigurationState.Instance.Graphics.PreferredGpu) : 0;
|
||||||
|
|
||||||
Dispatcher.UIThread.Post(() => OnPropertyChanged(nameof(PreferredGpuIndex)));
|
Dispatcher.UIThread.Post(() => OnPropertyChanged(nameof(PreferredGpuIndex)));
|
||||||
}
|
}
|
||||||
@@ -643,23 +618,24 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
SkipUserProfiles = config.System.SkipUserProfilesManager;
|
SkipUserProfiles = config.System.SkipUserProfilesManager;
|
||||||
|
|
||||||
// CPU
|
// CPU
|
||||||
EnablePptc = config.System.EnablePptc;
|
EnablePptc = config.System.EnablePtc;
|
||||||
EnableLowPowerPptc = config.System.EnableLowPowerPptc;
|
EnableLowPowerPptc = config.System.EnableLowPowerPtc;
|
||||||
MemoryMode = (int)config.System.MemoryManagerMode.Value;
|
MemoryMode = (int)config.System.MemoryManagerMode.Value;
|
||||||
UseHypervisor = config.System.UseHypervisor;
|
UseHypervisor = config.System.UseHypervisor;
|
||||||
TurboMultiplier = config.System.TickScalar;
|
TurboMultiplier = config.System.TickScalar;
|
||||||
|
|
||||||
// Graphics
|
// Graphics
|
||||||
GraphicsBackend = (int)config.Graphics.GraphicsBackend.Value;
|
GraphicsBackendIndex = (int)config.Graphics.GraphicsBackend.Value;
|
||||||
// Physical devices are queried asynchronously hence the preferred index config value is loaded in LoadAvailableGpus().
|
// Physical devices are queried asynchronously hence the preferred index config value is loaded in LoadAvailableGpus().
|
||||||
EnableShaderCache = config.Graphics.EnableShaderCache;
|
EnableShaderCache = config.Graphics.EnableShaderCache;
|
||||||
EnableTextureRecompression = config.Graphics.EnableTextureRecompression;
|
EnableTextureRecompression = config.Graphics.EnableTextureRecompression;
|
||||||
EnableMacroHLE = config.Graphics.EnableMacroHLE;
|
EnableMacroHLE = config.Graphics.EnableMacroHLE;
|
||||||
EnableColorSpacePassthrough = config.Graphics.EnableColorSpacePassthrough;
|
EnableColorSpacePassthrough = config.Graphics.EnableColorSpacePassthrough;
|
||||||
ResScaleIndex = ComputeResScaleIndex(config.Graphics.ResScale);
|
ResolutionScale = config.Graphics.ResScale == -1 ? 4 : config.Graphics.ResScale - 1;
|
||||||
MaxAnisotropyIndex = ComputeMaxAnisotropyIndex(config.Graphics.MaxAnisotropy);
|
CustomResolutionScale = config.Graphics.ResScaleCustom;
|
||||||
|
MaxAnisotropy = config.Graphics.MaxAnisotropy == -1 ? 0 : (int)(MathF.Log2(config.Graphics.MaxAnisotropy));
|
||||||
AspectRatio = (int)config.Graphics.AspectRatio.Value;
|
AspectRatio = (int)config.Graphics.AspectRatio.Value;
|
||||||
BackendThreading = (int)config.Graphics.BackendThreading.Value;
|
GraphicsBackendMultithreadingIndex = (int)config.Graphics.BackendThreading.Value;
|
||||||
ShaderDumpPath = config.Graphics.ShadersDumpPath;
|
ShaderDumpPath = config.Graphics.ShadersDumpPath;
|
||||||
TextureDumpPath = config.Graphics.TexturesDumpPath.Value;
|
TextureDumpPath = config.Graphics.TexturesDumpPath.Value;
|
||||||
TextureDumpFormatIndex = (int)config.Graphics.TexturesDumpFileFormat.Value;
|
TextureDumpFormatIndex = (int)config.Graphics.TexturesDumpFileFormat.Value;
|
||||||
@@ -762,31 +738,33 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
config.System.SkipUserProfilesManager.Value = SkipUserProfiles;
|
config.System.SkipUserProfilesManager.Value = SkipUserProfiles;
|
||||||
|
|
||||||
// CPU
|
// CPU
|
||||||
config.System.EnablePptc.Value = EnablePptc;
|
config.System.EnablePtc.Value = EnablePptc;
|
||||||
config.System.EnableLowPowerPptc.Value = EnableLowPowerPptc;
|
config.System.EnableLowPowerPtc.Value = EnableLowPowerPptc;
|
||||||
config.System.MemoryManagerMode.Value = (MemoryManagerMode)MemoryMode;
|
config.System.MemoryManagerMode.Value = (MemoryManagerMode)MemoryMode;
|
||||||
config.System.UseHypervisor.Value = UseHypervisor;
|
config.System.UseHypervisor.Value = UseHypervisor;
|
||||||
|
config.System.TickScalar.Value = TurboMultiplier;
|
||||||
|
|
||||||
// Graphics
|
// Graphics
|
||||||
config.Graphics.GraphicsBackend.Value = (GraphicsBackend)GraphicsBackend;
|
config.Graphics.GraphicsBackend.Value = (GraphicsBackend)GraphicsBackendIndex;
|
||||||
config.Graphics.PreferredGpu.Value = _gpuIds.ElementAtOrDefault(PreferredGpuIndex);
|
config.Graphics.PreferredGpu.Value = _gpuIds.ElementAtOrDefault(PreferredGpuIndex);
|
||||||
config.Graphics.EnableShaderCache.Value = EnableShaderCache;
|
config.Graphics.EnableShaderCache.Value = EnableShaderCache;
|
||||||
config.Graphics.EnableTextureRecompression.Value = EnableTextureRecompression;
|
config.Graphics.EnableTextureRecompression.Value = EnableTextureRecompression;
|
||||||
config.Graphics.EnableMacroHLE.Value = EnableMacroHLE;
|
config.Graphics.EnableMacroHLE.Value = EnableMacroHLE;
|
||||||
config.Graphics.EnableColorSpacePassthrough.Value = EnableColorSpacePassthrough;
|
config.Graphics.EnableColorSpacePassthrough.Value = EnableColorSpacePassthrough;
|
||||||
config.Graphics.ResScale.Value = ComputeResScale(ResScaleIndex);
|
config.Graphics.ResScale.Value = ResolutionScale == 4 ? -1 : ResolutionScale + 1;
|
||||||
config.Graphics.MaxAnisotropy.Value = ComputeMaxAnisotropy(MaxAnisotropyIndex);
|
config.Graphics.ResScaleCustom.Value = CustomResolutionScale;
|
||||||
|
config.Graphics.MaxAnisotropy.Value = MaxAnisotropy == 0 ? -1 : MathF.Pow(2, MaxAnisotropy);
|
||||||
config.Graphics.AspectRatio.Value = (AspectRatio)AspectRatio;
|
config.Graphics.AspectRatio.Value = (AspectRatio)AspectRatio;
|
||||||
config.Graphics.AntiAliasing.Value = (AntiAliasing)AntiAliasingEffect;
|
config.Graphics.AntiAliasing.Value = (AntiAliasing)AntiAliasingEffect;
|
||||||
config.Graphics.ScalingFilter.Value = (ScalingFilter)ScalingFilter;
|
config.Graphics.ScalingFilter.Value = (ScalingFilter)ScalingFilter;
|
||||||
config.Graphics.ScalingFilterLevel.Value = ScalingFilterLevel;
|
config.Graphics.ScalingFilterLevel.Value = ScalingFilterLevel;
|
||||||
|
|
||||||
if (ConfigurationState.Instance.Graphics.BackendThreading != (BackendThreading)BackendThreading)
|
if (ConfigurationState.Instance.Graphics.BackendThreading != (BackendThreading)GraphicsBackendMultithreadingIndex)
|
||||||
{
|
{
|
||||||
DriverUtilities.ToggleOGLThreading(BackendThreading == (int)Ryujinx.Common.Configuration.BackendThreading.Off);
|
DriverUtilities.ToggleOGLThreading(GraphicsBackendMultithreadingIndex == (int)BackendThreading.Off);
|
||||||
}
|
}
|
||||||
|
|
||||||
config.Graphics.BackendThreading.Value = (BackendThreading)BackendThreading;
|
config.Graphics.BackendThreading.Value = (BackendThreading)GraphicsBackendMultithreadingIndex;
|
||||||
config.Graphics.ShadersDumpPath.Value = ShaderDumpPath;
|
config.Graphics.ShadersDumpPath.Value = ShaderDumpPath;
|
||||||
config.Graphics.TexturesDumpPath.Value = TextureDumpPath;
|
config.Graphics.TexturesDumpPath.Value = TextureDumpPath;
|
||||||
config.Graphics.TexturesDumpFileFormat.Value = (TextureFileFormat)TextureDumpFormatIndex;
|
config.Graphics.TexturesDumpFileFormat.Value = (TextureFileFormat)TextureDumpFormatIndex;
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="Ryujinx.Ava.UI.Views.Settings.CustomSettingsAudioView"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
|
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
x:DataType="viewModels:CustomSettingsViewModel">
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:SettingsViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
<ScrollViewer
|
|
||||||
Name="AudioPage"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
HorizontalScrollBarVisibility="Disabled"
|
|
||||||
VerticalScrollBarVisibility="Auto">
|
|
||||||
<Border Classes="settings">
|
|
||||||
<StackPanel
|
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="10">
|
|
||||||
<TextBlock Classes="h1" Text="{locale:Locale SettingsTabAudio}" />
|
|
||||||
<StackPanel Margin="10,0,0,0" Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemAudioBackend}"
|
|
||||||
ToolTip.Tip="{locale:Locale AudioBackendTooltip}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox SelectedIndex="{Binding AudioBackend}"
|
|
||||||
Width="350"
|
|
||||||
HorizontalContentAlignment="Left">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemAudioBackendDummy}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
IsEnabled="{Binding IsOpenAlEnabled}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemAudioBackendOpenAL}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
IsEnabled="{Binding IsSoundIoEnabled}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemAudioBackendSoundIO}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
IsEnabled="{Binding IsSDL3Enabled}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemAudioBackendSDL3}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Margin="10,0,0,0" Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemAudioVolume}"
|
|
||||||
ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
|
|
||||||
Width="250" />
|
|
||||||
<ui:FANumberBox Value="{Binding Volume}"
|
|
||||||
ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
|
|
||||||
Width="350"
|
|
||||||
SmallChange="1"
|
|
||||||
LargeChange="10"
|
|
||||||
SimpleNumberFormat="F0"
|
|
||||||
SpinButtonPlacementMode="Inline"
|
|
||||||
Minimum="0"
|
|
||||||
Maximum="100" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Margin="10,0,0,0" Orientation="Horizontal">
|
|
||||||
<controls:SliderScroll Value="{Binding Volume}"
|
|
||||||
Margin="250,0,0,0"
|
|
||||||
ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
|
|
||||||
Minimum="0"
|
|
||||||
Maximum="100"
|
|
||||||
SmallChange="1"
|
|
||||||
TickFrequency="1"
|
|
||||||
IsSnapToTickEnabled="True"
|
|
||||||
LargeChange="10"
|
|
||||||
Width="350" />
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
</ScrollViewer>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsAudioView : UserControl
|
|
||||||
{
|
|
||||||
public CustomSettingsAudioView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="Ryujinx.Ava.UI.Views.Settings.CustomSettingsCPUView"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
x:DataType="viewModels:CustomSettingsViewModel">
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:SettingsViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
<ScrollViewer
|
|
||||||
Name="CpuPage"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
HorizontalScrollBarVisibility="Disabled"
|
|
||||||
VerticalScrollBarVisibility="Auto">
|
|
||||||
<Border Classes="settings">
|
|
||||||
<StackPanel
|
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="10">
|
|
||||||
<TextBlock Classes="h1" Text="{locale:Locale SettingsTabCpuCache}" />
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<CheckBox IsChecked="{Binding EnablePptc}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsTabSystemEnablePptc}"
|
|
||||||
ToolTip.Tip="{locale:Locale PptcToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableLowPowerPptc}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsTabSystemEnableLowPowerPptc}"
|
|
||||||
ToolTip.Tip="{locale:Locale LowPowerPptcToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Height="1" />
|
|
||||||
<TextBlock Classes="h1" Text="{locale:Locale SettingsTabCpuMemory}" />
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemMemoryManagerMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox SelectedIndex="{Binding MemoryManagerMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
Width="350">
|
|
||||||
<ComboBoxItem
|
|
||||||
ToolTip.Tip="{locale:Locale MemoryManagerSoftwareTooltip}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemMemoryManagerModeSoftware}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
ToolTip.Tip="{locale:Locale MemoryManagerHostTooltip}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemMemoryManagerModeHost}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
ToolTip.Tip="{locale:Locale MemoryManagerUnsafeTooltip}"
|
|
||||||
Content="{locale:Locale SettingsTabSystemMemoryManagerModeHostUnchecked}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<CheckBox IsChecked="{Binding UseHypervisor}"
|
|
||||||
IsVisible="{Binding IsHypervisorAvailable}"
|
|
||||||
ToolTip.Tip="{locale:Locale UseHypervisorTooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsTabSystemUseHypervisor}"
|
|
||||||
ToolTip.Tip="{locale:Locale UseHypervisorTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Height="1" />
|
|
||||||
<StackPanel
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="5">
|
|
||||||
<TextBlock
|
|
||||||
Classes="h1"
|
|
||||||
Text="{locale:Locale SettingsTabSystemHacks}" />
|
|
||||||
<TextBlock
|
|
||||||
Foreground="{DynamicResource SecondaryTextColor}"
|
|
||||||
TextDecorations="Underline"
|
|
||||||
Text="{locale:Locale SettingsTabSystemHacksNote}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<StackPanel Margin="0,0,0,10"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Background="Transparent"
|
|
||||||
Text="{locale:Locale SettingsTabSystemTurboMultiplier}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabSystemTurboMultiplierToolTip}"
|
|
||||||
Width="250" />
|
|
||||||
<ui:FANumberBox ToolTip.Tip="{locale:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
|
|
||||||
Value="{Binding TurboMultiplier}"
|
|
||||||
Width="165"
|
|
||||||
SmallChange="1.0"
|
|
||||||
LargeChange="10"
|
|
||||||
SimpleNumberFormat="F0"
|
|
||||||
SpinButtonPlacementMode="Hidden"
|
|
||||||
Minimum="50"
|
|
||||||
Maximum="1000" />
|
|
||||||
<Slider Value="{Binding TurboMultiplier}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
|
|
||||||
MinWidth="175"
|
|
||||||
Margin="10,-3,0,0"
|
|
||||||
Height="32"
|
|
||||||
Padding="0,-5"
|
|
||||||
TickFrequency="1"
|
|
||||||
IsSnapToTickEnabled="True"
|
|
||||||
LargeChange="10"
|
|
||||||
SmallChange="1"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Minimum="50"
|
|
||||||
Maximum="1000" />
|
|
||||||
<TextBlock Margin="5,0"
|
|
||||||
Width="40"
|
|
||||||
Text="{Binding TurboMultiplierPercentageText}"/>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
</ScrollViewer>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsCPUView : UserControl
|
|
||||||
{
|
|
||||||
public CustomSettingsCPUView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,153 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="Ryujinx.Ava.UI.Views.Settings.CustomSettingsGraphicsView"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
|
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
Design.Width="1000"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
x:DataType="viewModels:CustomSettingsViewModel">
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:SettingsViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
<ScrollViewer
|
|
||||||
Name="GraphicsPage"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
HorizontalScrollBarVisibility="Disabled"
|
|
||||||
VerticalScrollBarVisibility="Auto">
|
|
||||||
<Border Classes="settings">
|
|
||||||
<StackPanel
|
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="10">
|
|
||||||
<TextBlock Classes="h1" Text="{locale:Locale SettingsTabGraphicsAPI}" />
|
|
||||||
<StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
|
|
||||||
Text="{locale:Locale SettingsTabGraphicsBackend}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox Width="350"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
|
|
||||||
SelectedIndex="{Binding GraphicsBackend}">
|
|
||||||
<ComboBoxItem
|
|
||||||
IsVisible="{Binding IsVulkanAvailable}"
|
|
||||||
Content="Vulkan" />
|
|
||||||
<ComboBoxItem
|
|
||||||
IsEnabled="{Binding IsOpenGLAvailable}"
|
|
||||||
Content="OpenGL" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
|
||||||
Text="{locale:Locale SettingsTabGraphicsPreferredGpu}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox Width="350"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
|
||||||
SelectedIndex="{Binding PreferredGpuIndex}"
|
|
||||||
ItemsSource="{Binding AvailableGpus}"/>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Height="1" />
|
|
||||||
<TextBlock Classes="h1" Text="{locale:Locale SettingsTabGraphicsFeatures}" />
|
|
||||||
<StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
|
|
||||||
<StackPanel Orientation="Vertical">
|
|
||||||
<CheckBox IsChecked="{Binding EnableShaderCache}"
|
|
||||||
ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableTextureRecompression}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsEnableTextureRecompressionTooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsEnableTextureRecompression}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableMacroHLE}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsEnableMacroHLETooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsEnableMacroHLE}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableColorSpacePassthrough}"
|
|
||||||
IsVisible="{Binding ColorSpacePassthroughAvailable}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsEnableColorSpacePassthroughTooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsEnableColorSpacePassthrough}" />
|
|
||||||
</CheckBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}"
|
|
||||||
Text="{locale:Locale SettingsTabGraphicsResolutionScale}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox SelectedIndex="{Binding ResScaleIndex}"
|
|
||||||
Width="350"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale05x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale075x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale10x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale20x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale30x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale40x}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
ToolTip.Tip="{locale:Locale AnisotropyTooltip}"
|
|
||||||
Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox SelectedIndex="{Binding MaxAnisotropyIndex}"
|
|
||||||
Width="350"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
ToolTip.Tip="{locale:Locale AnisotropyTooltip}">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsAnisotropicFiltering2x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsAnisotropicFiltering4x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsAnisotropicFiltering8x}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsAnisotropicFiltering16x}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="10">
|
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<TextBlock VerticalAlignment="Center"
|
|
||||||
ToolTip.Tip="{locale:Locale GraphicsBackendThreadingTooltip}"
|
|
||||||
Text="{locale:Locale SettingsTabGraphicsBackendMultithreading}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox Width="350"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
ToolTip.Tip="{locale:Locale GalThreadingTooltip}"
|
|
||||||
SelectedIndex="{Binding BackendThreading}">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale CommonAuto}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale CommonOff}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale CommonOn}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
</ScrollViewer>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsGraphicsView : UserControl
|
|
||||||
{
|
|
||||||
public CustomSettingsGraphicsView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="Ryujinx.Ava.UI.Views.Settings.CustomSettingsSystemView"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
x:DataType="viewModels:CustomSettingsViewModel">
|
|
||||||
<UserControl.Resources>
|
|
||||||
<helpers:TimeZoneConverter x:Key="TimeZone" />
|
|
||||||
</UserControl.Resources>
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:SettingsViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
<ScrollViewer
|
|
||||||
Name="SystemPage"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
HorizontalScrollBarVisibility="Disabled"
|
|
||||||
VerticalScrollBarVisibility="Auto">
|
|
||||||
<Border Classes="settings">
|
|
||||||
<StackPanel
|
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="10">
|
|
||||||
<TextBlock
|
|
||||||
Classes="h1"
|
|
||||||
Text="{locale:Locale SettingsTabSystemCore}" />
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<StackPanel
|
|
||||||
Margin="0,0,0,10"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemSystemRegion}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox
|
|
||||||
SelectedIndex="{Binding SystemRegion}"
|
|
||||||
ToolTip.Tip="{locale:Locale RegionTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
Width="350">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionJapan}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionUSA}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionEurope}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionAustralia}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionChina}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionKorea}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemRegionTaiwan}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel
|
|
||||||
Margin="0,0,0,10"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemSystemLanguage}"
|
|
||||||
ToolTip.Tip="{locale:Locale LanguageTooltip}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox
|
|
||||||
SelectedIndex="{Binding SystemLanguage}"
|
|
||||||
ToolTip.Tip="{locale:Locale LanguageTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
Width="350">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageJapanese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageAmericanEnglish}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageFrench}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageGerman}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageItalian}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageSpanish}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageChinese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageKorean}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageDutch}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguagePortuguese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageRussian}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageTaiwanese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageBritishEnglish}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageCanadianFrench}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageLatinAmericanSpanish}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageSimplifiedChinese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageTraditionalChinese}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemSystemLanguageBrazilianPortuguese}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<CheckBox IsChecked="{Binding EnableFsIntegrityChecks}">
|
|
||||||
<TextBlock
|
|
||||||
Text="{locale:Locale SettingsTabSystemEnableFsIntegrityChecks}"
|
|
||||||
ToolTip.Tip="{locale:Locale FsIntegrityToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableDockedMode}">
|
|
||||||
<TextBlock
|
|
||||||
Text="{locale:Locale SettingsTabSystemEnableDockedMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale DockModeToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
<StackPanel Margin="0,10,0,10"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemVSyncMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabSystemVSyncModeTooltip}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox
|
|
||||||
SelectedIndex="{Binding VSyncMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabSystemVSyncModeTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
Width="350">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemVSyncModeSwitch}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemVSyncModeUnbounded}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
<Separator Height="1" />
|
|
||||||
<StackPanel
|
|
||||||
Orientation="Vertical"
|
|
||||||
Spacing="5">
|
|
||||||
<TextBlock
|
|
||||||
Classes="h1"
|
|
||||||
Text="{locale:Locale SettingsTabSystemHacks}" />
|
|
||||||
<TextBlock
|
|
||||||
Foreground="{DynamicResource SecondaryTextColor}"
|
|
||||||
Text="{locale:Locale SettingsTabSystemHacksNote}" />
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Text="{locale:Locale SettingsTabSystemDramSize}"
|
|
||||||
Width="250" />
|
|
||||||
<ComboBox
|
|
||||||
SelectedIndex="{Binding DramSize}"
|
|
||||||
ToolTip.Tip="{locale:Locale DRamTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
Width="350">
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemDramSize4GiB}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemDramSize6GiB}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemDramSize8GiB}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemDramSize10GiB}" />
|
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabSystemDramSize12GiB}" />
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel
|
|
||||||
Margin="10,0,0,0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
Orientation="Vertical">
|
|
||||||
<CheckBox
|
|
||||||
IsChecked="{Binding IgnoreMissingServices}"
|
|
||||||
ToolTip.Tip="{locale:Locale IgnoreMissingServicesTooltip}">
|
|
||||||
<TextBlock Text="{locale:Locale SettingsTabSystemIgnoreMissingServices}" />
|
|
||||||
</CheckBox>
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</Border>
|
|
||||||
</ScrollViewer>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Views.Settings
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsSystemView : UserControl
|
|
||||||
{
|
|
||||||
public CustomSettingsSystemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<ComboBox Width="350"
|
<ComboBox Width="350"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
|
ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
|
||||||
SelectedIndex="{Binding GraphicsBackend}">
|
SelectedIndex="{Binding GraphicsBackendIndex}">
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
IsVisible="{Binding IsVulkanAvailable}"
|
IsVisible="{Binding IsVulkanAvailable}"
|
||||||
Content="Vulkan" />
|
Content="Vulkan" />
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
Content="OpenGL" />
|
Content="OpenGL" />
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal" IsVisible="{Binding IsVulkanSelected}">
|
||||||
<TextBlock VerticalAlignment="Center"
|
<TextBlock VerticalAlignment="Center"
|
||||||
ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
||||||
Text="{locale:Locale SettingsTabGraphicsPreferredGpu}"
|
Text="{locale:Locale SettingsTabGraphicsPreferredGpu}"
|
||||||
@@ -83,23 +83,33 @@
|
|||||||
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}"
|
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}"
|
||||||
Text="{locale:Locale SettingsTabGraphicsResolutionScale}"
|
Text="{locale:Locale SettingsTabGraphicsResolutionScale}"
|
||||||
Width="250" />
|
Width="250" />
|
||||||
<ComboBox SelectedIndex="{Binding ResScaleIndex}"
|
<ComboBox SelectedIndex="{Binding ResolutionScale}"
|
||||||
Width="350"
|
Width="350"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}">
|
ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}">
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale05x}" />
|
Content="{locale:Locale SettingsTabGraphicsResolutionScaleNative}" />
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale075x}" />
|
Content="{locale:Locale SettingsTabGraphicsResolutionScale2x}" />
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale10x}" />
|
Content="{locale:Locale SettingsTabGraphicsResolutionScale3x}" />
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale20x}" />
|
Content="{locale:Locale SettingsTabGraphicsResolutionScale4x}" />
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale30x}" />
|
Content="{locale:Locale SettingsTabGraphicsResolutionScaleCustom}" />
|
||||||
<ComboBoxItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphicsResolutionScale40x}" />
|
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
<ui:FANumberBox
|
||||||
|
Margin="10,0,0,0"
|
||||||
|
ToolTip.Tip="{locale:Locale ResolutionScaleEntryTooltip}"
|
||||||
|
MinWidth="150"
|
||||||
|
SmallChange="0.1"
|
||||||
|
LargeChange="1"
|
||||||
|
SimpleNumberFormat="F2"
|
||||||
|
SpinButtonPlacementMode="Inline"
|
||||||
|
IsVisible="{Binding IsCustomResolutionScaleActive}"
|
||||||
|
Maximum="10"
|
||||||
|
Minimum="0.1"
|
||||||
|
Value="{Binding CustomResolutionScale}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
@@ -176,7 +186,7 @@
|
|||||||
ToolTip.Tip="{locale:Locale AnisotropyTooltip}"
|
ToolTip.Tip="{locale:Locale AnisotropyTooltip}"
|
||||||
Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}"
|
Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}"
|
||||||
Width="250" />
|
Width="250" />
|
||||||
<ComboBox SelectedIndex="{Binding MaxAnisotropyIndex}"
|
<ComboBox SelectedIndex="{Binding MaxAnisotropy}"
|
||||||
Width="350"
|
Width="350"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
ToolTip.Tip="{locale:Locale AnisotropyTooltip}">
|
ToolTip.Tip="{locale:Locale AnisotropyTooltip}">
|
||||||
@@ -231,7 +241,7 @@
|
|||||||
<ComboBox Width="350"
|
<ComboBox Width="350"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
ToolTip.Tip="{locale:Locale GalThreadingTooltip}"
|
ToolTip.Tip="{locale:Locale GalThreadingTooltip}"
|
||||||
SelectedIndex="{Binding BackendThreading}">
|
SelectedIndex="{Binding GraphicsBackendMultithreadingIndex}">
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
Content="{locale:Locale CommonAuto}" />
|
Content="{locale:Locale CommonAuto}" />
|
||||||
<ComboBoxItem
|
<ComboBoxItem
|
||||||
|
|||||||
@@ -34,6 +34,13 @@
|
|||||||
<StackPanel
|
<StackPanel
|
||||||
Orientation="Horizontal"
|
Orientation="Horizontal"
|
||||||
Spacing="10">
|
Spacing="10">
|
||||||
|
<CheckBox
|
||||||
|
ToolTip.Tip="{locale:Locale DockModeToggleTooltip}"
|
||||||
|
MinWidth="0"
|
||||||
|
IsChecked="{Binding EnableDockedMode}">
|
||||||
|
<TextBlock
|
||||||
|
Text="{locale:Locale SettingsTabInputEnableDockedMode}" />
|
||||||
|
</CheckBox>
|
||||||
<CheckBox
|
<CheckBox
|
||||||
ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
|
ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
|
||||||
IsChecked="{Binding EnableKeyboard}">
|
IsChecked="{Binding EnableKeyboard}">
|
||||||
|
|||||||
@@ -158,21 +158,18 @@
|
|||||||
Width="350"
|
Width="350"
|
||||||
ToolTip.Tip="{locale:Locale TimeTooltip}" />
|
ToolTip.Tip="{locale:Locale TimeTooltip}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox IsChecked="{Binding MatchSystemTime}">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
|
VerticalAlignment="Center"
|
||||||
Text="{locale:Locale SettingsTabSystemSystemTimeMatch}"
|
Text="{locale:Locale SettingsTabSystemSystemTimeMatch}"
|
||||||
|
ToolTip.Tip="{locale:Locale MatchTimeTooltip}"
|
||||||
|
Width="250"/>
|
||||||
|
<CheckBox
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
IsChecked="{Binding MatchSystemTime}"
|
||||||
ToolTip.Tip="{locale:Locale MatchTimeTooltip}"/>
|
ToolTip.Tip="{locale:Locale MatchTimeTooltip}"/>
|
||||||
</CheckBox>
|
</StackPanel>
|
||||||
<CheckBox IsChecked="{Binding EnableFsIntegrityChecks}">
|
<Separator />
|
||||||
<TextBlock
|
|
||||||
Text="{locale:Locale SettingsTabSystemEnableFsIntegrityChecks}"
|
|
||||||
ToolTip.Tip="{locale:Locale FsIntegrityToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
<CheckBox IsChecked="{Binding EnableDockedMode}">
|
|
||||||
<TextBlock
|
|
||||||
Text="{locale:Locale SettingsTabSystemEnableDockedMode}"
|
|
||||||
ToolTip.Tip="{locale:Locale DockModeToggleTooltip}" />
|
|
||||||
</CheckBox>
|
|
||||||
<StackPanel Margin="0,10,0,10"
|
<StackPanel Margin="0,10,0,10"
|
||||||
Orientation="Horizontal">
|
Orientation="Horizontal">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
@@ -230,6 +227,11 @@
|
|||||||
Width="40"
|
Width="40"
|
||||||
Text="{Binding CustomVSyncIntervalPercentageText}"/>
|
Text="{Binding CustomVSyncIntervalPercentageText}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
<CheckBox IsChecked="{Binding EnableFsIntegrityChecks}">
|
||||||
|
<TextBlock
|
||||||
|
Text="{locale:Locale SettingsTabSystemEnableFsIntegrityChecks}"
|
||||||
|
ToolTip.Tip="{locale:Locale FsIntegrityToggleTooltip}" />
|
||||||
|
</CheckBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Separator Height="1" />
|
<Separator Height="1" />
|
||||||
<StackPanel
|
<StackPanel
|
||||||
|
|||||||
@@ -6,19 +6,15 @@ using Ryujinx.HLE.FileSystem;
|
|||||||
using Ryujinx.HLE.HOS;
|
using Ryujinx.HLE.HOS;
|
||||||
using Ryujinx.UI.App.Common;
|
using Ryujinx.UI.App.Common;
|
||||||
using Ryujinx.UI.Common.Configuration;
|
using Ryujinx.UI.Common.Configuration;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Linq;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Windows
|
namespace Ryujinx.Ava.UI.Windows
|
||||||
{
|
{
|
||||||
public partial class CheatWindow : StyleableWindow
|
public partial class CheatWindow : StyleableWindow
|
||||||
{
|
{
|
||||||
[DllImport("dwmapi.dll")]
|
|
||||||
private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int value, int size);
|
|
||||||
|
|
||||||
private readonly string _enabledCheatsPath;
|
private readonly string _enabledCheatsPath;
|
||||||
public bool NoCheatsFound { get; }
|
public bool NoCheatsFound { get; }
|
||||||
|
|
||||||
@@ -32,7 +28,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
DataContext = this;
|
DataContext = this;
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
ApplyDarkTitleBar();
|
|
||||||
|
|
||||||
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle];
|
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle];
|
||||||
}
|
}
|
||||||
@@ -51,7 +46,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
BuildId = ApplicationData.GetBuildId(virtualFileSystem, checkLevel, titlePath);
|
BuildId = ApplicationData.GetBuildId(virtualFileSystem, checkLevel, titlePath);
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
ApplyDarkTitleBar();
|
|
||||||
|
|
||||||
string modsBasePath = ModLoader.GetModsBasePath();
|
string modsBasePath = ModLoader.GetModsBasePath();
|
||||||
string titleModsPath = ModLoader.GetApplicationDir(modsBasePath, titleId);
|
string titleModsPath = ModLoader.GetApplicationDir(modsBasePath, titleId);
|
||||||
@@ -106,50 +100,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle];
|
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle];
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyDarkTitleBar()
|
|
||||||
{
|
|
||||||
if (!OperatingSystem.IsWindows())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Apply immediately if possible
|
|
||||||
if (PlatformImpl != null)
|
|
||||||
{
|
|
||||||
ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Wait until PlatformImpl is available
|
|
||||||
this.PropertyChanged += (_, e) =>
|
|
||||||
{
|
|
||||||
if (e.Property.Name == nameof(PlatformImpl) && PlatformImpl != null)
|
|
||||||
{
|
|
||||||
ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Backup: Try it even when the window is active
|
|
||||||
this.Activated += (_, _) => ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ForceDarkTitleBar()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var handleField = PlatformImpl?.GetType().GetProperty("Handle")?.GetValue(PlatformImpl);
|
|
||||||
if (handleField?.GetType().GetProperty("Handle")?.GetValue(handleField) is IntPtr hwnd && hwnd != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
int dark = 1;
|
|
||||||
DwmSetWindowAttribute(hwnd, 20, ref dark, sizeof(int)); // Modern Windows
|
|
||||||
DwmSetWindowAttribute(hwnd, 19, ref dark, sizeof(int)); // Older Windows 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// Silent fail
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
{
|
{
|
||||||
if (NoCheatsFound)
|
if (NoCheatsFound)
|
||||||
|
|||||||
@@ -1,119 +0,0 @@
|
|||||||
<window:StyleableWindow
|
|
||||||
x:Class="Ryujinx.Ava.UI.Windows.CustomSettingsWindow"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:window="clr-namespace:Ryujinx.Ava.UI.Windows"
|
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
||||||
xmlns:settings="clr-namespace:Ryujinx.Ava.UI.Views.Settings"
|
|
||||||
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
|
|
||||||
Width="1100"
|
|
||||||
Height="927"
|
|
||||||
MinWidth="800"
|
|
||||||
MinHeight="480"
|
|
||||||
WindowStartupLocation="CenterOwner"
|
|
||||||
x:DataType="viewModels:CustomSettingsViewModel"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
Focusable="True">
|
|
||||||
<Design.DataContext>
|
|
||||||
<viewModels:CustomSettingsViewModel />
|
|
||||||
</Design.DataContext>
|
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="600"
|
|
||||||
RowDefinitions="Auto,*,Auto">
|
|
||||||
<ContentPresenter
|
|
||||||
x:Name="ContentPresenter"
|
|
||||||
Grid.Row="1"
|
|
||||||
IsVisible="False"
|
|
||||||
KeyboardNavigation.IsTabStop="False"/>
|
|
||||||
<Grid Name="Pages" IsVisible="False" Grid.Row="2">
|
|
||||||
<settings:CustomSettingsSystemView Name="SystemPage" />
|
|
||||||
<settings:CustomSettingsCPUView Name="CpuPage" />
|
|
||||||
<settings:CustomSettingsGraphicsView Name="GraphicsPage" />
|
|
||||||
<settings:CustomSettingsAudioView Name="AudioPage" />
|
|
||||||
</Grid>
|
|
||||||
<ui:FANavigationView
|
|
||||||
Grid.Row="1"
|
|
||||||
IsSettingsVisible="False"
|
|
||||||
Name="NavPanel"
|
|
||||||
IsBackEnabled="False"
|
|
||||||
PaneDisplayMode="Left"
|
|
||||||
Margin="2,10,10,0"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
OpenPaneLength="200">
|
|
||||||
<ui:FANavigationView.PaneHeader>
|
|
||||||
<Border
|
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
ClipToBounds="True"
|
|
||||||
CornerRadius="4">
|
|
||||||
<Grid RowDefinitions="Auto,Auto">
|
|
||||||
<Grid Grid.Column="0">
|
|
||||||
<Image
|
|
||||||
Grid.Row="0"
|
|
||||||
HorizontalAlignment="Stretch"
|
|
||||||
VerticalAlignment="Top"
|
|
||||||
Source="{Binding GameIcon}"
|
|
||||||
Width="140"
|
|
||||||
Height="140">
|
|
||||||
</Image>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
</Border>
|
|
||||||
</ui:FANavigationView.PaneHeader>
|
|
||||||
<ui:FANavigationView.MenuItems>
|
|
||||||
<ui:FANavigationViewItem
|
|
||||||
Content="{locale:Locale SettingsTabSystem}"
|
|
||||||
Tag="SystemPage"
|
|
||||||
IconSource="Settings" />
|
|
||||||
<ui:FANavigationViewItem
|
|
||||||
Content="{locale:Locale SettingsTabCpu}"
|
|
||||||
Tag="CpuPage">
|
|
||||||
<ui:FANavigationViewItem.IconSource>
|
|
||||||
<ui:FAFontIconSource
|
|
||||||
FontFamily="avares://Ryujinx/Assets/Fonts#Segoe Fluent Icons"
|
|
||||||
Glyph="{helpers:GlyphValueConverter Chip}" />
|
|
||||||
</ui:FANavigationViewItem.IconSource>
|
|
||||||
</ui:FANavigationViewItem>
|
|
||||||
<ui:FANavigationViewItem
|
|
||||||
Content="{locale:Locale SettingsTabGraphics}"
|
|
||||||
Tag="GraphicsPage"
|
|
||||||
IconSource="Image" />
|
|
||||||
<ui:FANavigationViewItem
|
|
||||||
Content="{locale:Locale SettingsTabAudio}"
|
|
||||||
IconSource="Audio"
|
|
||||||
Tag="AudioPage" />
|
|
||||||
</ui:FANavigationView.MenuItems>
|
|
||||||
<ui:FANavigationView.Styles>
|
|
||||||
<Style Selector="Grid#PlaceholderGrid">
|
|
||||||
<Setter Property="Height" Value="160" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="ui|FANavigationViewItem ui|FASymbolIcon">
|
|
||||||
<Setter Property="FlowDirection" Value="LeftToRight" />
|
|
||||||
</Style>
|
|
||||||
</ui:FANavigationView.Styles>
|
|
||||||
</ui:FANavigationView>
|
|
||||||
<ReversibleStackPanel
|
|
||||||
Grid.Row="2"
|
|
||||||
Margin="10"
|
|
||||||
Spacing="10"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
ReverseOrder="{Binding IsMacOS}">
|
|
||||||
<Button
|
|
||||||
Content="{locale:Locale SettingsButtonDelete}"
|
|
||||||
Command="{Binding DeleteButton}" />
|
|
||||||
<Button
|
|
||||||
Content="{locale:Locale SettingsButtonSave}"
|
|
||||||
Command="{Binding SaveButton}" />
|
|
||||||
<Button
|
|
||||||
HotKey="Escape"
|
|
||||||
Content="{locale:Locale SettingsButtonCancel}"
|
|
||||||
Command="{Binding CancelButton}" />
|
|
||||||
</ReversibleStackPanel>
|
|
||||||
</Grid>
|
|
||||||
</window:StyleableWindow>
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
using FluentAvalonia.UI.Controls;
|
|
||||||
using Ryujinx.Ava.Common.Locale;
|
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
|
||||||
using Ryujinx.HLE.FileSystem;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Windows
|
|
||||||
{
|
|
||||||
public partial class CustomSettingsWindow : StyleableWindow
|
|
||||||
{
|
|
||||||
[DllImport("dwmapi.dll")]
|
|
||||||
private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int value, int size);
|
|
||||||
|
|
||||||
internal readonly CustomSettingsViewModel ViewModel;
|
|
||||||
|
|
||||||
public CustomSettingsWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName, byte[] icon, string titlePath)
|
|
||||||
{
|
|
||||||
Title = $"Ryujinx {Program.Version} - {LocaleManager.Instance[LocaleKeys.Settings]} - {titleName} ";
|
|
||||||
DataContext = ViewModel = new CustomSettingsViewModel(titleId,icon,titleName);
|
|
||||||
ViewModel.CloseWindow += Close;
|
|
||||||
InitializeComponent();
|
|
||||||
ApplyDarkTitleBar();
|
|
||||||
Load();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ApplyDarkTitleBar()
|
|
||||||
{
|
|
||||||
if (!OperatingSystem.IsWindows())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Apply immediately if possible
|
|
||||||
if (PlatformImpl != null)
|
|
||||||
{
|
|
||||||
ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Wait until PlatformImpl is available
|
|
||||||
this.PropertyChanged += (_, e) =>
|
|
||||||
{
|
|
||||||
if (e.Property.Name == nameof(PlatformImpl) && PlatformImpl != null)
|
|
||||||
{
|
|
||||||
ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Backup: Try it even when the window is active
|
|
||||||
this.Activated += (_, _) => ForceDarkTitleBar();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ForceDarkTitleBar()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var handleField = PlatformImpl?.GetType().GetProperty("Handle")?.GetValue(PlatformImpl);
|
|
||||||
if (handleField?.GetType().GetProperty("Handle")?.GetValue(handleField) is IntPtr hwnd && hwnd != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
int dark = 1;
|
|
||||||
DwmSetWindowAttribute(hwnd, 20, ref dark, sizeof(int)); // Modern Windows
|
|
||||||
DwmSetWindowAttribute(hwnd, 19, ref dark, sizeof(int)); // Older Windows 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// Silent fail
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Load()
|
|
||||||
{
|
|
||||||
Pages.Children.Clear();
|
|
||||||
NavPanel.SelectionChanged += NavPanelOnSelectionChanged;
|
|
||||||
NavPanel.SelectedItem = NavPanel.MenuItems.ElementAt(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void NavPanelOnSelectionChanged(object sender, FANavigationViewSelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.SelectedItem is FANavigationViewItem navItem && navItem.Tag is not null)
|
|
||||||
{
|
|
||||||
switch (navItem.Tag.ToString())
|
|
||||||
{
|
|
||||||
case "SystemPage":
|
|
||||||
NavPanel.Content = SystemPage;
|
|
||||||
break;
|
|
||||||
case "CpuPage":
|
|
||||||
NavPanel.Content = CpuPage;
|
|
||||||
break;
|
|
||||||
case "GraphicsPage":
|
|
||||||
NavPanel.Content = GraphicsPage;
|
|
||||||
break;
|
|
||||||
case "AudioPage":
|
|
||||||
NavPanel.Content = AudioPage;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnClosing(WindowClosingEventArgs e)
|
|
||||||
{
|
|
||||||
base.OnClosing(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -570,7 +570,7 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
public static void UpdateGraphicsConfig()
|
public static void UpdateGraphicsConfig()
|
||||||
{
|
{
|
||||||
#pragma warning disable IDE0055 // Disable formatting
|
#pragma warning disable IDE0055 // Disable formatting
|
||||||
GraphicsConfig.ResScale = ConfigurationState.Instance.Graphics.ResScale;
|
GraphicsConfig.ResScale = ConfigurationState.Instance.Graphics.ResScale == -1 ? ConfigurationState.Instance.Graphics.ResScaleCustom : ConfigurationState.Instance.Graphics.ResScale;
|
||||||
GraphicsConfig.MaxAnisotropy = ConfigurationState.Instance.Graphics.MaxAnisotropy;
|
GraphicsConfig.MaxAnisotropy = ConfigurationState.Instance.Graphics.MaxAnisotropy;
|
||||||
GraphicsConfig.ShadersDumpPath = ConfigurationState.Instance.Graphics.ShadersDumpPath;
|
GraphicsConfig.ShadersDumpPath = ConfigurationState.Instance.Graphics.ShadersDumpPath;
|
||||||
GraphicsConfig.EnableShaderCache = ConfigurationState.Instance.Graphics.EnableShaderCache;
|
GraphicsConfig.EnableShaderCache = ConfigurationState.Instance.Graphics.EnableShaderCache;
|
||||||
|
|||||||
Reference in New Issue
Block a user