diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
index 88baa5f12..45c5e50da 100644
--- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
+++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
@@ -580,6 +580,12 @@
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 				);
 				MARKETING_VERSION = 0.0.8;
 				PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
@@ -694,6 +700,12 @@
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
+					"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
 				);
 				MARKETING_VERSION = 0.0.8;
 				PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate
index 5a41cbf60..bb8063d83 100644
Binary files a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate and b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/src/MeloNX/MeloNX/Core/Swift/Controller/VirtualController.swift b/src/MeloNX/MeloNX/Core/Swift/Controller/VirtualController.swift
index e55b51eab..66b580191 100644
--- a/src/MeloNX/MeloNX/Core/Swift/Controller/VirtualController.swift
+++ b/src/MeloNX/MeloNX/Core/Swift/Controller/VirtualController.swift
@@ -14,33 +14,27 @@ public var controllerCallback: (() -> Void)?
 var VirtualController: GCVirtualController!
 func showVirtualController() {
     let config = GCVirtualController.Configuration()
-    if UserDefaults.standard.bool(forKey: "RyuDemoControls") {
-        config.elements = [
-            GCInputLeftThumbstick,
-            GCInputButtonA,
-            GCInputButtonB,
-            GCInputButtonX,
-            GCInputButtonY,
-            // GCInputRightThumbstick,
-            GCInputRightTrigger,
-            GCInputLeftTrigger,
-            GCInputLeftShoulder,
-            GCInputRightShoulder
-        ]
-    } else {
-        config.elements = [
-            GCInputLeftThumbstick,
-            GCInputButtonA,
-            GCInputButtonB,
-            GCInputButtonX,
-            GCInputButtonY,
-            GCInputRightThumbstick,
-            GCInputRightTrigger,
-            GCInputLeftTrigger,
-            GCInputLeftShoulder,
-            GCInputRightShoulder
-        ]
+    
+    var controllere = [
+        GCInputLeftThumbstick,
+        GCInputButtonA,
+        GCInputButtonB,
+        GCInputButtonX,
+        GCInputButtonY,
+        // GCInputRightThumbstick,
+        GCInputRightTrigger,
+        GCInputLeftTrigger,
+        GCInputLeftShoulder,
+        GCInputRightShoulder
+    ]
+    
+    if !UserDefaults.standard.bool(forKey: "RyuDemoControls") {
+        
+        controllere.append(GCInputRightThumbstick)
     }
+    
+    config.elements = Set(controllere)
+    
     VirtualController = GCVirtualController(configuration: config)
     VirtualController.connect { err in
         print("controller connect: \(String(describing: err))")
diff --git a/src/MeloNX/MeloNX/Core/Swift/Display/DisplayVisible.swift b/src/MeloNX/MeloNX/Core/Swift/Display/DisplayVisible.swift
index ef423ef42..b7e870165 100644
--- a/src/MeloNX/MeloNX/Core/Swift/Display/DisplayVisible.swift
+++ b/src/MeloNX/MeloNX/Core/Swift/Display/DisplayVisible.swift
@@ -20,7 +20,7 @@ extension UIWindow {
         self.wdb_makeKeyAndVisible()
         theWindow = self
         if #available(iOS 15.0, *) {
-            reconnectVirtualController()
+            // reconnectVirtualController()
         }
         
         
diff --git a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
index 6f032f814..3bfa8d386 100644
--- a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
+++ b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
@@ -99,7 +99,7 @@ class Ryujinx {
         isRunning = true
         
         // Start The Emulation on the main thread
-        DispatchQueue.main.async {
+        RunLoop.current.perform {
             do {
                 let args = self.buildCommandLineArgs(from: config)
                 
@@ -147,27 +147,22 @@ class Ryujinx {
         
         // Fixes the Stubs.DispatchLoop Crash
         args.append(contentsOf: ["--memory-manager-mode", config.memoryManagerMode])
-        if config.fullscreen {
-            args.append(contentsOf: ["--exclusive-fullscreen", String(config.fullscreen)])
-            args.append(contentsOf: ["--exclusive-fullscreen-width", "1280"])
-            args.append(contentsOf: ["--exclusive-fullscreen-height", "720"])
-        }
+        args.append(contentsOf: ["--exclusive-fullscreen", String(config.fullscreen)])
+        args.append(contentsOf: ["--exclusive-fullscreen-width", "1280"])
+        args.append(contentsOf: ["--exclusive-fullscreen-height", "720"])
         
-        if config.resscale != 1 {
-            args.append(contentsOf: ["--resolution-scale", String(config.resscale)])
-        }
         
         if config.nintendoinput {
-            args.append("--correct-ons-controller")
-        }
-        if config.enableInternet {
-            args.append("--enable-internet-connection")
+            args.append("--correct-controller")
         }
         
         // Adding default args directly into additionalArgs
         if config.disableVSync {
-            args.append("--disable-vsync")
+            // args.append("--disable-vsync")
         }
+        
+        args.append("--disable-vsync")
+        
         if config.disableShaderCache {
             args.append("--disable-shader-cache")
         }
diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift
index 1bc9ddd06..e1d7b1f48 100644
--- a/src/MeloNX/MeloNX/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/Views/ContentView.swift
@@ -37,8 +37,8 @@ struct ContentView: View {
         _config = State(initialValue: defaultConfig)
         
         let defaultSettings: [MoltenVKSettings] = [
-            // MoltenVKSettings(string: "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE", value: "2048"),
-            MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "1"),
+            // MoltenVKSettings(string: "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE", value: "512"),
+            MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "0"),
             MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1")
         ]
         
@@ -161,40 +161,17 @@ struct ContentView: View {
     }
     
     private func setupEmulation() {
-        if isJITEnabled {
-            virtualController?.disconnect()
+        virtualController?.disconnect()
         
-            controllerCallback = {
-                DispatchQueue.main.async {
-                    controllersList = Ryujinx.shared.getConnectedControllers()
-                    
-                    print(currentControllers)
-                    start(displayid: 1)
-                }
-            }
-            
-            
-            showVirtualController()
-        } else {
-            showAlert(title: "JIT Not Enabled", message: "JIT is Required for Emulation. Please use a JIT enabler to Enable JIT", showOk: true) { pressedok in
-                if pressedok, !ignoreJIT {
-                    game = nil
-                } else if pressedok, ignoreJIT {
-                    virtualController?.disconnect()
-                    controllerCallback = {
-                        DispatchQueue.main.async {
-                            controllersList = Ryujinx.shared.getConnectedControllers()
-                            
-                            print(currentControllers)
-                            start(displayid: 1)
-                        }
-                    }
-                    
-                    
-                    showVirtualController()
-                }
+        controllerCallback = {
+            DispatchQueue.main.async {
+
+                start(displayid: 1)
             }
         }
+            
+            
+        showVirtualController()
     }
     
     private func refreshControllersList() {
diff --git a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
index c421a662a..693a31d63 100644
--- a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
+++ b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs
@@ -103,11 +103,7 @@ namespace Ryujinx.Graphics.Vulkan
             SupportsShaderStencilExport = supportsShaderStencilExport;
             SupportsShaderStorageImageMultisample = supportsShaderStorageImageMultisample;
             SupportsConditionalRendering = supportsConditionalRendering;
-            if (OperatingSystem.IsIOS()) { 
-                SupportsExtendedDynamicState = (OperatingSystem.IsOSPlatformVersionAtLeast("iOS", 17) ? supportsExtendedDynamicState : false);
-            } else {
-                SupportsExtendedDynamicState = supportsExtendedDynamicState;
-            }
+            SupportsExtendedDynamicState = supportsExtendedDynamicState;
             SupportsMultiView = supportsMultiView;
             SupportsNullDescriptors = (OperatingSystem.IsIOS() ? false : supportsNullDescriptors);
             SupportsPushDescriptors = supportsPushDescriptors;
diff --git a/src/Ryujinx.Headless.SDL2/Options.cs b/src/Ryujinx.Headless.SDL2/Options.cs
index 37521a57e..3d7ffabdf 100644
--- a/src/Ryujinx.Headless.SDL2/Options.cs
+++ b/src/Ryujinx.Headless.SDL2/Options.cs
@@ -31,7 +31,7 @@ namespace Ryujinx.Headless.SDL2
 
         // Input
 
-        [Option("correct-ons-controller", Required = false, Default = false, HelpText = "Makes the on-screen controller (iOS) buttons correspond to what they show.")]
+        [Option("correct-controller", Required = false, Default = false, HelpText = "Makes the on-screen controller (iOS) buttons correspond to what they show.")]
         public bool OnScreenCorrespond { get; set; }
 
         [Option("input-profile-1", Required = false, HelpText = "Set the input profile in use for Player 1.")]
diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs
index 42732c6c3..906094fea 100644
--- a/src/Ryujinx.Headless.SDL2/Program.cs
+++ b/src/Ryujinx.Headless.SDL2/Program.cs
@@ -143,7 +143,10 @@ namespace Ryujinx.Headless.SDL2
         {
             List<GamepadInfo> gamepads = new List<GamepadInfo>();
             IGamepad gamepad;
-            _inputManager = new InputManager(new SDL2KeyboardDriver(), new SDL2GamepadDriver());
+            if (_inputManager == null)
+            {
+                _inputManager = new InputManager(new SDL2KeyboardDriver(), new SDL2GamepadDriver());
+            }
 
             // Collect gamepads from the keyboard driver
             foreach (string id in _inputManager.KeyboardDriver.GamepadsIds)
@@ -417,7 +420,10 @@ namespace Ryujinx.Headless.SDL2
             _accountManager = new AccountManager(_libHacHorizonManager.RyujinxClient, option.UserProfile);
             _userChannelPersistence = new UserChannelPersistence();
 
-            _inputManager = new InputManager(new SDL2KeyboardDriver(), new SDL2GamepadDriver());
+            if (_inputManager == null)
+            {
+                _inputManager = new InputManager(new SDL2KeyboardDriver(), new SDL2GamepadDriver());
+            }
 
             GraphicsConfig.EnableShaderCache = true;