Compare commits
9 Commits
d8a3af0475
...
Canary-1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a375faecc1 | ||
|
|
1728b0f20c | ||
|
|
5aa071c59b | ||
|
|
1018c9db8b | ||
|
|
01ccd18726 | ||
|
|
abfbc6f4bc | ||
|
|
6a4bc02d7a | ||
|
|
814c0526d2 | ||
|
|
a5a4ef38e6 |
@@ -3348,7 +3348,7 @@
|
|||||||
01001C400482C000,"Wunderling DX",audio;crash,ingame,2022-09-10 13:20:12
|
01001C400482C000,"Wunderling DX",audio;crash,ingame,2022-09-10 13:20:12
|
||||||
01003B401148E000,"Wurroom",,playable,2020-10-07 22:46:21
|
01003B401148E000,"Wurroom",,playable,2020-10-07 22:46:21
|
||||||
010081700EDF4000,"WWE 2K Battlegrounds",nvdec;online-broken;UE4,playable,2022-10-07 12:44:40
|
010081700EDF4000,"WWE 2K Battlegrounds",nvdec;online-broken;UE4,playable,2022-10-07 12:44:40
|
||||||
010009800203E000,"WWE 2K18",nvdec,playable,2023-10-21 17:22:01
|
010009800203E000,"WWE 2K18",nvdec;online-broken,ingame,2025-01-17 11:36:56
|
||||||
0100DF100B97C000,"X-Morph: Defense",,playable,2020-06-22 11:05:31
|
0100DF100B97C000,"X-Morph: Defense",,playable,2020-06-22 11:05:31
|
||||||
0100D0B00FB74000,"XCOM® 2 Collection",gpu;crash,ingame,2022-10-04 09:38:30
|
0100D0B00FB74000,"XCOM® 2 Collection",gpu;crash,ingame,2022-10-04 09:38:30
|
||||||
0100CC9015360000,"XEL",gpu,ingame,2022-10-03 10:19:39
|
0100CC9015360000,"XEL",gpu,ingame,2022-10-03 10:19:39
|
||||||
|
|||||||
|
@@ -176,9 +176,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
|||||||
AllowedCpuCoresMask = GetMaskFromMinMax(lowestCpuCore, highestCpuCore);
|
AllowedCpuCoresMask = GetMaskFromMinMax(lowestCpuCore, highestCpuCore);
|
||||||
AllowedThreadPriosMask = GetMaskFromMinMax(lowestThreadPrio, highestThreadPrio);
|
AllowedThreadPriosMask = GetMaskFromMinMax(lowestThreadPrio, highestThreadPrio);
|
||||||
|
|
||||||
if (isApplication && lowestCpuCore == 0 && highestCpuCore != 2)
|
if (isApplication)
|
||||||
Ryujinx.Common.Logging.Logger.Error?.Print(Ryujinx.Common.Logging.LogClass.Application, $"Application requested cores with index range {lowestCpuCore} to {highestCpuCore}! Report this to @LotP on the Ryujinx/Ryubing discord server (discord.gg/ryujinx)!");
|
|
||||||
else if (isApplication)
|
|
||||||
Ryujinx.Common.Logging.Logger.Info?.Print(Ryujinx.Common.Logging.LogClass.Application, $"Application requested cores with index range {lowestCpuCore} to {highestCpuCore}");
|
Ryujinx.Common.Logging.Logger.Info?.Print(Ryujinx.Common.Logging.LogClass.Application, $"Application requested cores with index range {lowestCpuCore} to {highestCpuCore}");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -703,6 +703,18 @@ namespace Ryujinx.HLE.HOS.Services.Hid
|
|||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CommandCmif(92)]
|
||||||
|
// SetGestureOutputRanges(pid, ushort Unknown0)
|
||||||
|
public ResultCode SetGestureOutputRanges(ServiceCtx context)
|
||||||
|
{
|
||||||
|
ulong pid = context.Request.HandleDesc.PId;
|
||||||
|
ushort unknown0 = context.RequestData.ReadUInt16();
|
||||||
|
|
||||||
|
Logger.Stub?.PrintStub(LogClass.ServiceHid, new { pid, unknown0 });
|
||||||
|
|
||||||
|
return ResultCode.Success;
|
||||||
|
}
|
||||||
|
|
||||||
[CommandCmif(100)]
|
[CommandCmif(100)]
|
||||||
// SetSupportedNpadStyleSet(pid, nn::applet::AppletResourceUserId, nn::hid::NpadStyleTag)
|
// SetSupportedNpadStyleSet(pid, nn::applet::AppletResourceUserId, nn::hid::NpadStyleTag)
|
||||||
public ResultCode SetSupportedNpadStyleSet(ServiceCtx context)
|
public ResultCode SetSupportedNpadStyleSet(ServiceCtx context)
|
||||||
|
|||||||
@@ -253,23 +253,11 @@ namespace Ryujinx.Input.SDL2
|
|||||||
return IGamepad.GetStateSnapshot(this);
|
return IGamepad.GetStateSnapshot(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool hotButtonMinus = false;
|
|
||||||
private static bool hotExit = false;
|
|
||||||
|
|
||||||
public bool SpecialExit()
|
|
||||||
{
|
|
||||||
if (hotButtonMinus)
|
|
||||||
{
|
|
||||||
hotButtonMinus = false;
|
|
||||||
return hotExit;
|
|
||||||
}
|
|
||||||
return hotExit = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GamepadStateSnapshot GetMappedStateSnapshot()
|
public GamepadStateSnapshot GetMappedStateSnapshot()
|
||||||
{
|
{
|
||||||
GamepadStateSnapshot rawState = GetStateSnapshot();
|
GamepadStateSnapshot rawState = GetStateSnapshot();
|
||||||
GamepadStateSnapshot result = default;
|
GamepadStateSnapshot result = default;
|
||||||
|
|
||||||
lock (_userMappingLock)
|
lock (_userMappingLock)
|
||||||
{
|
{
|
||||||
if (_buttonsUserMapping.Count == 0)
|
if (_buttonsUserMapping.Count == 0)
|
||||||
@@ -282,28 +270,6 @@ namespace Ryujinx.Input.SDL2
|
|||||||
if (!entry.IsValid)
|
if (!entry.IsValid)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (GamepadButtonInputId.Minus == entry.To)
|
|
||||||
{
|
|
||||||
if (rawState.IsPressed(entry.From) && !hotButtonMinus)
|
|
||||||
{
|
|
||||||
hotButtonMinus = true;
|
|
||||||
}
|
|
||||||
else if (!result.IsPressed(entry.From) && hotButtonMinus)
|
|
||||||
{
|
|
||||||
hotButtonMinus = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GamepadButtonInputId.Plus == entry.To)
|
|
||||||
{
|
|
||||||
if (rawState.IsPressed(entry.To) && hotButtonMinus)
|
|
||||||
{
|
|
||||||
|
|
||||||
hotExit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do not touch state of button already pressed
|
// Do not touch state of button already pressed
|
||||||
if (!result.IsPressed(entry.To))
|
if (!result.IsPressed(entry.To))
|
||||||
{
|
{
|
||||||
@@ -410,7 +376,5 @@ namespace Ryujinx.Input.SDL2
|
|||||||
|
|
||||||
return SDL_GameControllerGetButton(_gamepadHandle, _buttonsDriverMapping[(int)inputId]) == 1;
|
return SDL_GameControllerGetButton(_gamepadHandle, _buttonsDriverMapping[(int)inputId]) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -329,11 +329,6 @@ namespace Ryujinx.Input.SDL2
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SpecialExit()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GamepadStateSnapshot GetStateSnapshot()
|
public GamepadStateSnapshot GetStateSnapshot()
|
||||||
{
|
{
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
|
|||||||
@@ -25,10 +25,6 @@ namespace Ryujinx.Input.SDL2
|
|||||||
{
|
{
|
||||||
_driver = driver;
|
_driver = driver;
|
||||||
}
|
}
|
||||||
public bool SpecialExit()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vector2 GetPosition()
|
public Vector2 GetPosition()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using Ryujinx.Common.Configuration.Hid;
|
|||||||
using Ryujinx.Common.Configuration.Hid.Controller;
|
using Ryujinx.Common.Configuration.Hid.Controller;
|
||||||
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
|
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.Graphics.Gpu;
|
|
||||||
using Ryujinx.HLE.HOS.Services.Hid;
|
using Ryujinx.HLE.HOS.Services.Hid;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
@@ -274,9 +273,8 @@ namespace Ryujinx.Input.HLE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
|
|
||||||
// _gamepad may be altered by other threads
|
// _gamepad may be altered by other threads
|
||||||
var gamepad = _gamepad;
|
var gamepad = _gamepad;
|
||||||
|
|
||||||
@@ -284,11 +282,6 @@ namespace Ryujinx.Input.HLE
|
|||||||
{
|
{
|
||||||
State = gamepad.GetMappedStateSnapshot();
|
State = gamepad.GetMappedStateSnapshot();
|
||||||
|
|
||||||
if (gamepad.SpecialExit())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_config is StandardControllerInputConfig controllerConfig && controllerConfig.Motion.EnableMotion)
|
if (_config is StandardControllerInputConfig controllerConfig && controllerConfig.Motion.EnableMotion)
|
||||||
{
|
{
|
||||||
if (controllerConfig.Motion.MotionBackend == MotionInputBackendType.GamepadDriver)
|
if (controllerConfig.Motion.MotionBackend == MotionInputBackendType.GamepadDriver)
|
||||||
@@ -341,7 +334,6 @@ namespace Ryujinx.Input.HLE
|
|||||||
State = default;
|
State = default;
|
||||||
_leftMotionInput = null;
|
_leftMotionInput = null;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GamepadInput GetHLEInputState()
|
public GamepadInput GetHLEInputState()
|
||||||
|
|||||||
@@ -200,10 +200,8 @@ namespace Ryujinx.Input.HLE
|
|||||||
ReloadConfiguration(inputConfig, enableKeyboard, enableMouse);
|
ReloadConfiguration(inputConfig, enableKeyboard, enableMouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Update(float aspectRatio = 1)
|
public void Update(float aspectRatio = 1)
|
||||||
{
|
{
|
||||||
bool specialExit = false;
|
|
||||||
|
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
{
|
||||||
List<GamepadInput> hleInputStates = new();
|
List<GamepadInput> hleInputStates = new();
|
||||||
@@ -227,8 +225,7 @@ namespace Ryujinx.Input.HLE
|
|||||||
DriverConfigurationUpdate(ref controller, inputConfig);
|
DriverConfigurationUpdate(ref controller, inputConfig);
|
||||||
|
|
||||||
controller.UpdateUserConfiguration(inputConfig);
|
controller.UpdateUserConfiguration(inputConfig);
|
||||||
|
controller.Update();
|
||||||
specialExit = controller.Update(); //hotkey press check
|
|
||||||
controller.UpdateRumble(_device.Hid.Npads.GetRumbleQueue(playerIndex));
|
controller.UpdateRumble(_device.Hid.Npads.GetRumbleQueue(playerIndex));
|
||||||
|
|
||||||
inputState = controller.GetHLEInputState();
|
inputState = controller.GetHLEInputState();
|
||||||
@@ -318,8 +315,6 @@ namespace Ryujinx.Input.HLE
|
|||||||
|
|
||||||
_device.TamperMachine.UpdateInput(hleInputStates);
|
_device.TamperMachine.UpdateInput(hleInputStates);
|
||||||
}
|
}
|
||||||
|
|
||||||
return specialExit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal InputConfig GetPlayerInputConfigByIndex(int index)
|
internal InputConfig GetPlayerInputConfigByIndex(int index)
|
||||||
|
|||||||
@@ -79,12 +79,6 @@ namespace Ryujinx.Input
|
|||||||
/// <returns>A remapped snaphost of the state of the gamepad.</returns>
|
/// <returns>A remapped snaphost of the state of the gamepad.</returns>
|
||||||
GamepadStateSnapshot GetMappedStateSnapshot();
|
GamepadStateSnapshot GetMappedStateSnapshot();
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the state if the minus and plus buttons were pressed on the gamepad.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>returns true if the buttons were pressed.</returns>
|
|
||||||
bool SpecialExit();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get a snaphost of the state of the gamepad.
|
/// Get a snaphost of the state of the gamepad.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ using Ryujinx.Ava.UI.Helpers;
|
|||||||
using Ryujinx.Ava.UI.Models;
|
using Ryujinx.Ava.UI.Models;
|
||||||
using Ryujinx.Ava.UI.Renderer;
|
using Ryujinx.Ava.UI.Renderer;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
using Ryujinx.Ava.UI.ViewModels;
|
||||||
using Ryujinx.Ava.UI.Views.Main;
|
|
||||||
using Ryujinx.Ava.UI.Windows;
|
using Ryujinx.Ava.UI.Windows;
|
||||||
using Ryujinx.Ava.Utilities;
|
using Ryujinx.Ava.Utilities;
|
||||||
using Ryujinx.Ava.Utilities.AppLibrary;
|
using Ryujinx.Ava.Utilities.AppLibrary;
|
||||||
@@ -71,7 +70,6 @@ namespace Ryujinx.Ava
|
|||||||
private const float MaxResolutionScale = 4.0f; // Max resolution hotkeys can scale to before wrapping.
|
private const float MaxResolutionScale = 4.0f; // Max resolution hotkeys can scale to before wrapping.
|
||||||
private const int TargetFps = 60;
|
private const int TargetFps = 60;
|
||||||
private const float VolumeDelta = 0.05f;
|
private const float VolumeDelta = 0.05f;
|
||||||
static bool SpecialExit = false;
|
|
||||||
|
|
||||||
private static readonly Cursor _invisibleCursor = new(StandardCursorType.None);
|
private static readonly Cursor _invisibleCursor = new(StandardCursorType.None);
|
||||||
private readonly nint _invisibleCursorWin;
|
private readonly nint _invisibleCursorWin;
|
||||||
@@ -98,7 +96,6 @@ namespace Ryujinx.Ava
|
|||||||
private bool _isCursorInRenderer = true;
|
private bool _isCursorInRenderer = true;
|
||||||
private bool _ignoreCursorState = false;
|
private bool _ignoreCursorState = false;
|
||||||
|
|
||||||
|
|
||||||
private enum CursorStates
|
private enum CursorStates
|
||||||
{
|
{
|
||||||
CursorIsHidden,
|
CursorIsHidden,
|
||||||
@@ -510,11 +507,6 @@ namespace Ryujinx.Ava
|
|||||||
Exit();
|
Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsSpecialExit()
|
|
||||||
{
|
|
||||||
return SpecialExit;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateIgnoreMissingServicesState(object sender, ReactiveEventArgs<bool> args)
|
private void UpdateIgnoreMissingServicesState(object sender, ReactiveEventArgs<bool> args)
|
||||||
{
|
{
|
||||||
if (Device != null)
|
if (Device != null)
|
||||||
@@ -597,7 +589,6 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
_isStopped = true;
|
_isStopped = true;
|
||||||
Stop();
|
Stop();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DisposeContext()
|
public void DisposeContext()
|
||||||
@@ -1144,7 +1135,6 @@ namespace Ryujinx.Ava
|
|||||||
string dockedMode = ConfigurationState.Instance.System.EnableDockedMode ? LocaleManager.Instance[LocaleKeys.Docked] : LocaleManager.Instance[LocaleKeys.Handheld];
|
string dockedMode = ConfigurationState.Instance.System.EnableDockedMode ? LocaleManager.Instance[LocaleKeys.Docked] : LocaleManager.Instance[LocaleKeys.Handheld];
|
||||||
string vSyncMode = Device.VSyncMode.ToString();
|
string vSyncMode = Device.VSyncMode.ToString();
|
||||||
|
|
||||||
|
|
||||||
UpdateShaderCount();
|
UpdateShaderCount();
|
||||||
|
|
||||||
if (GraphicsConfig.ResScale != 1)
|
if (GraphicsConfig.ResScale != 1)
|
||||||
@@ -1210,17 +1200,7 @@ namespace Ryujinx.Ava
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NpadManager.Update(ConfigurationState.Instance.Graphics.AspectRatio.Value.ToFloat()))
|
NpadManager.Update(ConfigurationState.Instance.Graphics.AspectRatio.Value.ToFloat());
|
||||||
{
|
|
||||||
if (ConfigurationState.Instance.Hid.SpecialExitEmulator.Value == 1)
|
|
||||||
{
|
|
||||||
SpecialExit = true; // close App
|
|
||||||
}
|
|
||||||
if (ConfigurationState.Instance.Hid.SpecialExitEmulator.Value > 0)
|
|
||||||
{
|
|
||||||
_isActive = false; //close game
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_viewModel.IsActive)
|
if (_viewModel.IsActive)
|
||||||
{
|
{
|
||||||
@@ -1355,8 +1335,6 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
Device.Hid.DebugPad.Update();
|
Device.Hid.DebugPad.Update();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
|||||||
using DiscordRPC;
|
using DiscordRPC;
|
||||||
|
using Gommon;
|
||||||
using Humanizer;
|
using Humanizer;
|
||||||
using Humanizer.Localisation;
|
using Humanizer.Localisation;
|
||||||
using Ryujinx.Ava.Utilities.AppLibrary;
|
using Ryujinx.Ava.Utilities.AppLibrary;
|
||||||
@@ -45,16 +46,7 @@ namespace Ryujinx.Ava
|
|||||||
};
|
};
|
||||||
|
|
||||||
ConfigurationState.Instance.EnableDiscordIntegration.Event += Update;
|
ConfigurationState.Instance.EnableDiscordIntegration.Event += Update;
|
||||||
TitleIDs.CurrentApplication.Event += (_, e) =>
|
TitleIDs.CurrentApplication.Event += (_, e) => Use(e.NewValue);
|
||||||
{
|
|
||||||
if (e.NewValue)
|
|
||||||
SwitchToPlayingState(
|
|
||||||
ApplicationLibrary.LoadAndSaveMetaData(e.NewValue),
|
|
||||||
Switch.Shared.Processes.ActiveApplication
|
|
||||||
);
|
|
||||||
else
|
|
||||||
SwitchToMainState();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Update(object sender, ReactiveEventArgs<bool> evnt)
|
private static void Update(object sender, ReactiveEventArgs<bool> evnt)
|
||||||
@@ -75,11 +67,23 @@ namespace Ryujinx.Ava
|
|||||||
_discordClient = new DiscordRpcClient(ApplicationId);
|
_discordClient = new DiscordRpcClient(ApplicationId);
|
||||||
|
|
||||||
_discordClient.Initialize();
|
_discordClient.Initialize();
|
||||||
_discordClient.SetPresence(_discordPresenceMain);
|
|
||||||
|
Use(TitleIDs.CurrentApplication);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void Use(Optional<string> titleId)
|
||||||
|
{
|
||||||
|
if (titleId.TryGet(out string tid))
|
||||||
|
SwitchToPlayingState(
|
||||||
|
ApplicationLibrary.LoadAndSaveMetaData(tid),
|
||||||
|
Switch.Shared.Processes.ActiveApplication
|
||||||
|
);
|
||||||
|
else
|
||||||
|
SwitchToMainState();
|
||||||
|
}
|
||||||
|
|
||||||
private static void SwitchToPlayingState(ApplicationMetadata appMeta, ProcessResult procRes)
|
private static void SwitchToPlayingState(ApplicationMetadata appMeta, ProcessResult procRes)
|
||||||
{
|
{
|
||||||
_discordClient?.SetPresence(new RichPresence
|
_discordClient?.SetPresence(new RichPresence
|
||||||
|
|||||||
@@ -350,11 +350,11 @@ namespace Ryujinx.Headless
|
|||||||
{
|
{
|
||||||
return options.GraphicsBackend switch
|
return options.GraphicsBackend switch
|
||||||
{
|
{
|
||||||
GraphicsBackend.Vulkan => new VulkanWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit),
|
GraphicsBackend.Vulkan => new VulkanWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet),
|
||||||
GraphicsBackend.Metal => OperatingSystem.IsMacOS() ?
|
GraphicsBackend.Metal => OperatingSystem.IsMacOS() ?
|
||||||
new MetalWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableKeyboard, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit) :
|
new MetalWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableKeyboard, options.HideCursorMode, options.IgnoreControllerApplet) :
|
||||||
throw new Exception("Attempted to use Metal renderer on non-macOS platform!"),
|
throw new Exception("Attempted to use Metal renderer on non-macOS platform!"),
|
||||||
_ => new OpenGLWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit)
|
_ => new OpenGLWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,8 @@ namespace Ryujinx.Headless
|
|||||||
AspectRatio aspectRatio,
|
AspectRatio aspectRatio,
|
||||||
bool enableMouse,
|
bool enableMouse,
|
||||||
HideCursorMode hideCursorMode,
|
HideCursorMode hideCursorMode,
|
||||||
bool ignoreControllerApplet,
|
bool ignoreControllerApplet)
|
||||||
int specialExitEmulator)
|
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet) { }
|
||||||
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator) { }
|
|
||||||
|
|
||||||
public override SDL_WindowFlags GetWindowFlags() => SDL_WindowFlags.SDL_WINDOW_METAL;
|
public override SDL_WindowFlags GetWindowFlags() => SDL_WindowFlags.SDL_WINDOW_METAL;
|
||||||
|
|
||||||
|
|||||||
@@ -118,9 +118,8 @@ namespace Ryujinx.Headless
|
|||||||
AspectRatio aspectRatio,
|
AspectRatio aspectRatio,
|
||||||
bool enableMouse,
|
bool enableMouse,
|
||||||
HideCursorMode hideCursorMode,
|
HideCursorMode hideCursorMode,
|
||||||
bool ignoreControllerApplet,
|
bool ignoreControllerApplet)
|
||||||
int specialExitEmulator)
|
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet)
|
||||||
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator)
|
|
||||||
{
|
{
|
||||||
_glLogLevel = glLogLevel;
|
_glLogLevel = glLogLevel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,9 +151,6 @@ namespace Ryujinx.Headless
|
|||||||
if (NeedsOverride(nameof(IgnoreControllerApplet)))
|
if (NeedsOverride(nameof(IgnoreControllerApplet)))
|
||||||
IgnoreControllerApplet = configurationState.IgnoreApplet;
|
IgnoreControllerApplet = configurationState.IgnoreApplet;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(SpecialExit)))
|
|
||||||
SpecialExit = configurationState.Hid.SpecialExitEmulator;
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
||||||
@@ -277,9 +274,6 @@ namespace Ryujinx.Headless
|
|||||||
[Option("enable-mouse", Required = false, Default = false, HelpText = "Enable or disable mouse support.")]
|
[Option("enable-mouse", Required = false, Default = false, HelpText = "Enable or disable mouse support.")]
|
||||||
public bool EnableMouse { get; set; }
|
public bool EnableMouse { get; set; }
|
||||||
|
|
||||||
[Option("enable-press-hotkeys-to-exit", Required = false, Default = 0, HelpText = "press the minus and plus buttons to: 0 -disable, 1 - exit app, 2 - exit game.")]
|
|
||||||
public int SpecialExit { get; set; }
|
|
||||||
|
|
||||||
[Option("hide-cursor", Required = false, Default = HideCursorMode.OnIdle, HelpText = "Change when the cursor gets hidden.")]
|
[Option("hide-cursor", Required = false, Default = HideCursorMode.OnIdle, HelpText = "Change when the cursor gets hidden.")]
|
||||||
public HideCursorMode HideCursorMode { get; set; }
|
public HideCursorMode HideCursorMode { get; set; }
|
||||||
|
|
||||||
@@ -420,7 +414,6 @@ namespace Ryujinx.Headless
|
|||||||
[Option("ignore-controller-applet", Required = false, Default = false, HelpText = "Enable ignoring the controller applet when your game loses connection to your controller.")]
|
[Option("ignore-controller-applet", Required = false, Default = false, HelpText = "Enable ignoring the controller applet when your game loses connection to your controller.")]
|
||||||
public bool IgnoreControllerApplet { get; set; }
|
public bool IgnoreControllerApplet { get; set; }
|
||||||
|
|
||||||
|
|
||||||
// Values
|
// Values
|
||||||
|
|
||||||
[Value(0, MetaName = "input", HelpText = "Input to load.", Required = true)]
|
[Value(0, MetaName = "input", HelpText = "Input to load.", Required = true)]
|
||||||
|
|||||||
@@ -18,9 +18,8 @@ namespace Ryujinx.Headless
|
|||||||
AspectRatio aspectRatio,
|
AspectRatio aspectRatio,
|
||||||
bool enableMouse,
|
bool enableMouse,
|
||||||
HideCursorMode hideCursorMode,
|
HideCursorMode hideCursorMode,
|
||||||
bool ignoreControllerApplet,
|
bool ignoreControllerApplet)
|
||||||
int specialExitEmulator)
|
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet)
|
||||||
: base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator)
|
|
||||||
{
|
{
|
||||||
_glLogLevel = glLogLevel;
|
_glLogLevel = glLogLevel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
private readonly AspectRatio _aspectRatio;
|
private readonly AspectRatio _aspectRatio;
|
||||||
private readonly bool _enableMouse;
|
private readonly bool _enableMouse;
|
||||||
private readonly int _specialExitEmulator;
|
|
||||||
private readonly bool _ignoreControllerApplet;
|
private readonly bool _ignoreControllerApplet;
|
||||||
|
|
||||||
public WindowBase(
|
public WindowBase(
|
||||||
@@ -97,8 +96,7 @@ namespace Ryujinx.Headless
|
|||||||
AspectRatio aspectRatio,
|
AspectRatio aspectRatio,
|
||||||
bool enableMouse,
|
bool enableMouse,
|
||||||
HideCursorMode hideCursorMode,
|
HideCursorMode hideCursorMode,
|
||||||
bool ignoreControllerApplet,
|
bool ignoreControllerApplet)
|
||||||
int specialExitEmulator)
|
|
||||||
{
|
{
|
||||||
MouseDriver = new SDL2MouseDriver(hideCursorMode);
|
MouseDriver = new SDL2MouseDriver(hideCursorMode);
|
||||||
_inputManager = inputManager;
|
_inputManager = inputManager;
|
||||||
@@ -114,7 +112,6 @@ namespace Ryujinx.Headless
|
|||||||
_gpuDoneEvent = new ManualResetEvent(false);
|
_gpuDoneEvent = new ManualResetEvent(false);
|
||||||
_aspectRatio = aspectRatio;
|
_aspectRatio = aspectRatio;
|
||||||
_enableMouse = enableMouse;
|
_enableMouse = enableMouse;
|
||||||
_specialExitEmulator = specialExitEmulator;
|
|
||||||
_ignoreControllerApplet = ignoreControllerApplet;
|
_ignoreControllerApplet = ignoreControllerApplet;
|
||||||
HostUITheme = new HeadlessHostUiTheme();
|
HostUITheme = new HeadlessHostUiTheme();
|
||||||
|
|
||||||
|
|||||||
@@ -30,11 +30,6 @@ namespace Ryujinx.Ava.Input
|
|||||||
public readonly Key From = from;
|
public readonly Key From = from;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SpecialExit()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AvaloniaKeyboard(AvaloniaKeyboardDriver driver, string id, string name)
|
public AvaloniaKeyboard(AvaloniaKeyboardDriver driver, string id, string name)
|
||||||
{
|
{
|
||||||
_buttonsUserMapping = [];
|
_buttonsUserMapping = [];
|
||||||
|
|||||||
@@ -13,11 +13,6 @@ namespace Ryujinx.Ava.Input
|
|||||||
public string Id => "0";
|
public string Id => "0";
|
||||||
public string Name => "AvaloniaMouse";
|
public string Name => "AvaloniaMouse";
|
||||||
|
|
||||||
public bool SpecialExit()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsConnected => true;
|
public bool IsConnected => true;
|
||||||
public GamepadFeaturesFlag Features => throw new NotImplementedException();
|
public GamepadFeaturesFlag Features => throw new NotImplementedException();
|
||||||
public bool[] Buttons => _driver.PressedButtons;
|
public bool[] Buttons => _driver.PressedButtons;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
Title="Ryujinx - Waiting"
|
Title="Ryujinx - Waiting"
|
||||||
SizeToContent="WidthAndHeight"
|
SizeToContent="WidthAndHeight"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
|
CanResize="False"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Focusable="True">
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
|
|||||||
@@ -1049,7 +1049,6 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
|
|
||||||
private void InitializeGame()
|
private void InitializeGame()
|
||||||
{
|
{
|
||||||
|
|
||||||
RendererHostControl.WindowCreated += RendererHost_Created;
|
RendererHostControl.WindowCreated += RendererHost_Created;
|
||||||
|
|
||||||
AppHost.StatusUpdatedEvent += Update_StatusBar;
|
AppHost.StatusUpdatedEvent += Update_StatusBar;
|
||||||
@@ -1059,13 +1058,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
|
|
||||||
AppHost?.Start();
|
AppHost?.Start();
|
||||||
|
|
||||||
if (AppHost?.IsSpecialExit() == true)
|
|
||||||
{
|
|
||||||
Window.ForceExit();
|
|
||||||
}
|
|
||||||
|
|
||||||
AppHost?.DisposeContext();
|
AppHost?.DisposeContext();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task HandleRelaunch()
|
private async Task HandleRelaunch()
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
public bool EnableDockedMode { get; set; }
|
public bool EnableDockedMode { get; set; }
|
||||||
public bool EnableKeyboard { get; set; }
|
public bool EnableKeyboard { get; set; }
|
||||||
public bool EnableMouse { get; set; }
|
public bool EnableMouse { get; set; }
|
||||||
public int EnableSpecialExit { get; set; }
|
|
||||||
public VSyncMode VSyncMode
|
public VSyncMode VSyncMode
|
||||||
{
|
{
|
||||||
get => _vSyncMode;
|
get => _vSyncMode;
|
||||||
@@ -260,8 +259,6 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
public int OpenglDebugLevel { get; set; }
|
public int OpenglDebugLevel { get; set; }
|
||||||
public int MemoryMode { get; set; }
|
public int MemoryMode { get; set; }
|
||||||
public int BaseStyleIndex { get; set; }
|
public int BaseStyleIndex { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public int GraphicsBackendIndex
|
public int GraphicsBackendIndex
|
||||||
{
|
{
|
||||||
get => _graphicsBackendIndex;
|
get => _graphicsBackendIndex;
|
||||||
@@ -514,13 +511,6 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
EnableDockedMode = config.System.EnableDockedMode;
|
EnableDockedMode = config.System.EnableDockedMode;
|
||||||
EnableKeyboard = config.Hid.EnableKeyboard;
|
EnableKeyboard = config.Hid.EnableKeyboard;
|
||||||
EnableMouse = config.Hid.EnableMouse;
|
EnableMouse = config.Hid.EnableMouse;
|
||||||
EnableSpecialExit = config.Hid.SpecialExitEmulator.Value switch
|
|
||||||
{
|
|
||||||
0 => 0, // "Hotkey 'Exit' is Disabled"
|
|
||||||
1 => 1, // "Close app. by hotkey"
|
|
||||||
2 => 2, // "Close game by hotkey"
|
|
||||||
_ => 0
|
|
||||||
};
|
|
||||||
|
|
||||||
// Keyboard Hotkeys
|
// Keyboard Hotkeys
|
||||||
KeyboardHotkey = new HotkeyConfig(config.Hid.Hotkeys.Value);
|
KeyboardHotkey = new HotkeyConfig(config.Hid.Hotkeys.Value);
|
||||||
@@ -628,13 +618,6 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
config.System.EnableDockedMode.Value = EnableDockedMode;
|
config.System.EnableDockedMode.Value = EnableDockedMode;
|
||||||
config.Hid.EnableKeyboard.Value = EnableKeyboard;
|
config.Hid.EnableKeyboard.Value = EnableKeyboard;
|
||||||
config.Hid.EnableMouse.Value = EnableMouse;
|
config.Hid.EnableMouse.Value = EnableMouse;
|
||||||
config.Hid.SpecialExitEmulator.Value = EnableSpecialExit switch
|
|
||||||
{
|
|
||||||
0 => 0, // "Hotkey 'Exit' is Disabled",
|
|
||||||
1 => 1, // "Close app. by hotkey",
|
|
||||||
2 => 2, // "Close game by hotkey",
|
|
||||||
_ => 0
|
|
||||||
};
|
|
||||||
|
|
||||||
// Keyboard Hotkeys
|
// Keyboard Hotkeys
|
||||||
config.Hid.Hotkeys.Value = KeyboardHotkey.GetConfig();
|
config.Hid.Hotkeys.Value = KeyboardHotkey.GetConfig();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<UserControl
|
<UserControl
|
||||||
x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsInputView"
|
x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsInputView"
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
@@ -58,20 +58,6 @@
|
|||||||
<TextBlock
|
<TextBlock
|
||||||
Text="{ext:Locale SettingsTabInputDirectMouseAccess}" />
|
Text="{ext:Locale SettingsTabInputDirectMouseAccess}" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<ComboBox SelectedIndex="{Binding EnableSpecialExit}"
|
|
||||||
ToolTip.Tip="{ext:Locale SpecialExitTooltip}"
|
|
||||||
HorizontalContentAlignment="Left"
|
|
||||||
MinWidth="160">
|
|
||||||
<ComboBoxItem>
|
|
||||||
<TextBlock Text="{ext:Locale SettingsTabInputDisableExitHotKey}" />
|
|
||||||
</ComboBoxItem>
|
|
||||||
<ComboBoxItem>
|
|
||||||
<TextBlock Text="{ext:Locale SettingsTabInputHotkeyIsCloseApp}" />
|
|
||||||
</ComboBoxItem>
|
|
||||||
<ComboBoxItem>
|
|
||||||
<TextBlock Text="{ext:Locale SettingsTabInputHotkeyIsCloseGame}" />
|
|
||||||
</ComboBoxItem>
|
|
||||||
</ComboBox>
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
internal readonly AvaHostUIHandler UiHandler;
|
internal readonly AvaHostUIHandler UiHandler;
|
||||||
|
|
||||||
private bool _isLoading;
|
private bool _isLoading;
|
||||||
private bool _isExitWithoutConfirm = false;
|
|
||||||
private bool _applicationsLoadedOnce;
|
private bool _applicationsLoadedOnce;
|
||||||
|
|
||||||
private UserChannelPersistence _userChannelPersistence;
|
private UserChannelPersistence _userChannelPersistence;
|
||||||
@@ -572,7 +571,7 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
|
|
||||||
protected override void OnClosing(WindowClosingEventArgs e)
|
protected override void OnClosing(WindowClosingEventArgs e)
|
||||||
{
|
{
|
||||||
if (!ViewModel.IsClosing && ViewModel.AppHost != null && ConfigurationState.Instance.ShowConfirmExit && !_isExitWithoutConfirm)
|
if (!ViewModel.IsClosing && ViewModel.AppHost != null && ConfigurationState.Instance.ShowConfirmExit)
|
||||||
{
|
{
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
|
|
||||||
@@ -617,12 +616,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||||||
base.OnClosing(e);
|
base.OnClosing(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ForceExit()
|
|
||||||
{
|
|
||||||
_isExitWithoutConfirm = true;
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ConfirmExit()
|
private void ConfirmExit()
|
||||||
{
|
{
|
||||||
Dispatcher.UIThread.InvokeAsync(async () =>
|
Dispatcher.UIThread.InvokeAsync(async () =>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The current version of the file format
|
/// The current version of the file format
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const int CurrentVersion = 60;
|
public const int CurrentVersion = 59;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Version of the configuration file format
|
/// Version of the configuration file format
|
||||||
@@ -366,12 +366,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool EnableMouse { get; set; }
|
public bool EnableMouse { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Allows you to choose one of several behaviors when pressing hotkeys:
|
|
||||||
/// 0 - Do nothing, 1 - Close the emulator application, 2 - Exit the game.
|
|
||||||
/// </summary>
|
|
||||||
public int SpecialExitEmulator { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Hotkey Keyboard Bindings
|
/// Hotkey Keyboard Bindings
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
|
|
||||||
Hid.EnableKeyboard.Value = cff.EnableKeyboard;
|
Hid.EnableKeyboard.Value = cff.EnableKeyboard;
|
||||||
Hid.EnableMouse.Value = cff.EnableMouse;
|
Hid.EnableMouse.Value = cff.EnableMouse;
|
||||||
Hid.SpecialExitEmulator.Value = cff.SpecialExitEmulator;
|
|
||||||
Hid.Hotkeys.Value = cff.Hotkeys;
|
Hid.Hotkeys.Value = cff.Hotkeys;
|
||||||
Hid.InputConfig.Value = cff.InputConfig ?? [];
|
Hid.InputConfig.Value = cff.InputConfig ?? [];
|
||||||
|
|
||||||
@@ -415,10 +414,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
// This was accidentally enabled by default when it was PRed. That is not what we want,
|
// This was accidentally enabled by default when it was PRed. That is not what we want,
|
||||||
// so as a compromise users who want to use it will simply need to re-enable it once after updating.
|
// so as a compromise users who want to use it will simply need to re-enable it once after updating.
|
||||||
cff.IgnoreApplet = false;
|
cff.IgnoreApplet = false;
|
||||||
}),
|
|
||||||
(60, static cff =>
|
|
||||||
{
|
|
||||||
cff.SpecialExitEmulator = 0;
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -420,13 +420,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ReactiveObject<bool> EnableMouse { get; private set; }
|
public ReactiveObject<bool> EnableMouse { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Allows you to choose one of several behaviors when pressing hotkeys:
|
|
||||||
/// 0 - Do nothing, 1 - Close the emulator application, 2 - Exit the game.
|
|
||||||
/// </summary>
|
|
||||||
public ReactiveObject<int> SpecialExitEmulator { get; private set; }
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Hotkey Keyboard Bindings
|
/// Hotkey Keyboard Bindings
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -443,7 +436,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
{
|
{
|
||||||
EnableKeyboard = new ReactiveObject<bool>();
|
EnableKeyboard = new ReactiveObject<bool>();
|
||||||
EnableMouse = new ReactiveObject<bool>();
|
EnableMouse = new ReactiveObject<bool>();
|
||||||
SpecialExitEmulator = new ReactiveObject<int>();
|
|
||||||
Hotkeys = new ReactiveObject<KeyboardHotkeys>();
|
Hotkeys = new ReactiveObject<KeyboardHotkeys>();
|
||||||
InputConfig = new ReactiveObject<List<InputConfig>>();
|
InputConfig = new ReactiveObject<List<InputConfig>>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
ShowConsole = UI.ShowConsole,
|
ShowConsole = UI.ShowConsole,
|
||||||
EnableKeyboard = Hid.EnableKeyboard,
|
EnableKeyboard = Hid.EnableKeyboard,
|
||||||
EnableMouse = Hid.EnableMouse,
|
EnableMouse = Hid.EnableMouse,
|
||||||
SpecialExitEmulator = Hid.SpecialExitEmulator,
|
|
||||||
Hotkeys = Hid.Hotkeys,
|
Hotkeys = Hid.Hotkeys,
|
||||||
KeyboardConfig = [],
|
KeyboardConfig = [],
|
||||||
ControllerConfig = [],
|
ControllerConfig = [],
|
||||||
@@ -242,7 +241,6 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
UI.WindowStartup.WindowMaximized.Value = false;
|
UI.WindowStartup.WindowMaximized.Value = false;
|
||||||
Hid.EnableKeyboard.Value = false;
|
Hid.EnableKeyboard.Value = false;
|
||||||
Hid.EnableMouse.Value = false;
|
Hid.EnableMouse.Value = false;
|
||||||
Hid.SpecialExitEmulator.Value = 0;
|
|
||||||
Hid.Hotkeys.Value = new KeyboardHotkeys
|
Hid.Hotkeys.Value = new KeyboardHotkeys
|
||||||
{
|
{
|
||||||
ToggleVSyncMode = Key.F1,
|
ToggleVSyncMode = Key.F1,
|
||||||
|
|||||||
Reference in New Issue
Block a user