diff --git a/Ryujinx.Common/Logging/Logger.cs b/Ryujinx.Common/Logging/Logger.cs index df1954540f..9b7a500aa7 100644 --- a/Ryujinx.Common/Logging/Logger.cs +++ b/Ryujinx.Common/Logging/Logger.cs @@ -75,10 +75,6 @@ namespace Ryujinx.Common.Logging { ILogTarget logTarget = GetTarget(target); - // TODO: remove this - if (logTarget == null) - throw new Exception(); - if (logTarget != null) { Updated -= logTarget.Log; diff --git a/Ryujinx.HLE/Input/Hid.cs b/Ryujinx.HLE/Input/Hid.cs index 27e6a30873..de8b179aa0 100644 --- a/Ryujinx.HLE/Input/Hid.cs +++ b/Ryujinx.HLE/Input/Hid.cs @@ -1,5 +1,7 @@ using Ryujinx.Common; +using Ryujinx.Configuration.Hid; using Ryujinx.HLE.HOS; +using System; namespace Ryujinx.HLE.Input { @@ -47,18 +49,37 @@ namespace Ryujinx.HLE.Input _keyboardOffset = HidPosition + HidKeyboardOffset; } - public void InitializePrimaryController(ControllerStatus controllerType) + private static ControllerStatus ConvertControllerTypeToState(ControllerType controllerType) { - ControllerId controllerId = controllerType == ControllerStatus.Handheld ? + switch (controllerType) + { + case ControllerType.Handheld: + return ControllerStatus.Handheld; + case ControllerType.NpadLeft: + return ControllerStatus.NpadLeft; + case ControllerType.NpadRight: + return ControllerStatus.NpadRight; + case ControllerType.NpadPair: + return ControllerStatus.NpadPair; + case ControllerType.ProController: + return ControllerStatus.ProController; + default: + throw new NotImplementedException(); + } + } + + public void InitializePrimaryController(ControllerType controllerType) + { + ControllerId controllerId = controllerType == ControllerType.Handheld ? ControllerId.ControllerHandheld : ControllerId.ControllerPlayer1; - if (controllerType == ControllerStatus.ProController) + if (controllerType == ControllerType.ProController) { PrimaryController = new ProController(_device, NpadColor.Black, NpadColor.Black); } else { - PrimaryController = new NpadController(controllerType, + PrimaryController = new NpadController(ConvertControllerTypeToState(controllerType), _device, (NpadColor.BodyNeonRed, NpadColor.BodyNeonRed), (NpadColor.ButtonsNeonBlue, NpadColor.ButtonsNeonBlue)); @@ -67,11 +88,6 @@ namespace Ryujinx.HLE.Input PrimaryController.Connect(controllerId); } - public void InitializeKeyboard() - { - _device.Memory.FillWithZeros(HidPosition + HidKeyboardOffset, HidKeyboardSize); - } - public ControllerButtons UpdateStickButtons( JoystickPosition leftStick, JoystickPosition rightStick) diff --git a/Ryujinx.HLE/Switch.cs b/Ryujinx.HLE/Switch.cs index cbfc003849..45b06bc649 100644 --- a/Ryujinx.HLE/Switch.cs +++ b/Ryujinx.HLE/Switch.cs @@ -1,5 +1,6 @@ using LibHac.FsSystem; using Ryujinx.Audio; +using Ryujinx.Configuration; using Ryujinx.Graphics; using Ryujinx.Graphics.Gal; using Ryujinx.HLE.FileSystem; @@ -63,27 +64,27 @@ namespace Ryujinx.HLE VsyncEvent = new AutoResetEvent(true); } - // TODO: Use Configuration when it will be moved to Common. - public void Initialize(SystemLanguage language, bool enableMulticoreScheduling, bool enableDockedMode, bool enableVsync, bool enableFsIntegrityChecks, int fsGlobalAccessLogMode, bool ignoreMissingServices) + public void Initialize() { - System.State.SetLanguage(language); + System.State.SetLanguage((SystemLanguage)ConfigurationState.Instance.System.Language.Value); - EnableDeviceVsync = enableVsync; + EnableDeviceVsync = ConfigurationState.Instance.Graphics.EnableVsync; - System.State.DockedMode = enableDockedMode; + // TODO: Make this relodable and implement Docking/UnDocking logic. + System.State.DockedMode = ConfigurationState.Instance.System.EnableDockedMode; - if (enableMulticoreScheduling) + if (ConfigurationState.Instance.System.EnableMulticoreScheduling) { System.EnableMultiCoreScheduling(); } - System.FsIntegrityCheckLevel = enableFsIntegrityChecks + System.FsIntegrityCheckLevel = ConfigurationState.Instance.System.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None; - System.GlobalAccessLogMode = fsGlobalAccessLogMode; + System.GlobalAccessLogMode = ConfigurationState.Instance.System.FsGlobalAccessLogMode; - ServiceConfiguration.IgnoreMissingServices = ignoreMissingServices; + ServiceConfiguration.IgnoreMissingServices = ConfigurationState.Instance.System.IgnoreMissingServices; } public void LoadCart(string exeFsDir, string romFsFile = null) diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index e77e639d6e..048b38dae5 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -11,8 +11,6 @@ using System.Text; using System.Threading; using Ryujinx.Configuration; using System.Diagnostics; -using OpenTK.Input; -using Ryujinx.Ui.Input; using System.Threading.Tasks; using Utf8Json; using JsonPrettyPrinterPlus; @@ -21,9 +19,6 @@ using Ryujinx.HLE.FileSystem; using GUI = Gtk.Builder.ObjectAttribute; -using Ryujinx.HLE.Input; -using Ryujinx.Configuration.Hid; -using Ryujinx.HLE.HOS.SystemState; namespace Ryujinx.Ui { @@ -206,7 +201,8 @@ namespace Ryujinx.Ui { HLE.Switch instance = new HLE.Switch(_renderer, _audioOut); - instance.Initialize((SystemLanguage)ConfigurationState.Instance.System.Language.Value, ConfigurationState.Instance.System.EnableMulticoreScheduling, ConfigurationState.Instance.System.EnableDockedMode, ConfigurationState.Instance.Graphics.EnableVsync, ConfigurationState.Instance.System.EnableFsIntegrityChecks, ConfigurationState.Instance.System.FsGlobalAccessLogMode, ConfigurationState.Instance.System.IgnoreMissingServices); + instance.Initialize(); + return instance; } @@ -340,35 +336,9 @@ namespace Ryujinx.Ui } } - // TODO: Make HLE.Switch handle the state itself + reloading - private static void ConfigureHid() - { - _device.Hid.InitializePrimaryController(ConvertControllerTypeToState(ConfigurationState.Instance.Hid.ControllerType)); - _device.Hid.InitializeKeyboard(); - } - - private static ControllerStatus ConvertControllerTypeToState(ControllerType controllerType) - { - switch (controllerType) - { - case ControllerType.Handheld: - return ControllerStatus.Handheld; - case ControllerType.NpadLeft: - return ControllerStatus.NpadLeft; - case ControllerType.NpadRight: - return ControllerStatus.NpadRight; - case ControllerType.NpadPair: - return ControllerStatus.NpadPair; - case ControllerType.ProController: - return ControllerStatus.ProController; - default: - throw new NotImplementedException(); - } - } - private static void CreateGameWindow() { - ConfigureHid(); + _device.Hid.InitializePrimaryController(ConfigurationState.Instance.Hid.ControllerType); using (_screen = new GlScreen(_device, _renderer)) {