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 ebffcfcce..d2352d7bb 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/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json
index 230588010..635ee3d18 100644
--- a/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,6 +1,7 @@
 {
   "images" : [
     {
+      "filename" : "nxgradientpng.png",
       "idiom" : "universal",
       "platform" : "ios",
       "size" : "1024x1024"
diff --git a/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/nxgradientpng.png b/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/nxgradientpng.png
new file mode 100644
index 000000000..421f7d484
Binary files /dev/null and b/src/MeloNX/MeloNX/Assets/Assets.xcassets/AppIcon.appiconset/nxgradientpng.png differ
diff --git a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
index 6f589cf5f..6f032f814 100644
--- a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
+++ b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
@@ -158,7 +158,7 @@ class Ryujinx {
         }
         
         if config.nintendoinput {
-            // args.append("--correct-ons-controller")
+            args.append("--correct-ons-controller")
         }
         if config.enableInternet {
             args.append("--enable-internet-connection")
diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift
index 96eeda36b..ff163bbf1 100644
--- a/src/MeloNX/MeloNX/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/Views/ContentView.swift
@@ -25,7 +25,7 @@ struct ContentView: View {
     @State private var config: Ryujinx.Configuration
     @State private var settings: [MoltenVKSettings]
     @State private var isVirtualControllerActive: Bool = false
-    @State var onscreencontroller: Controller?
+    @State var onscreencontroller: Controller = Controller(id: "", name: "")
     
     // MARK: - Initialization
     init() {
@@ -85,6 +85,9 @@ struct ContentView: View {
             Section("Settings") {
                 NavigationLink("Config") {
                     SettingsView(config: $config, MoltenVKSettings: $settings)
+                        .onAppear() {
+                            virtualController?.disconnect()
+                        }
                 }
             }
             
@@ -171,21 +174,13 @@ struct ContentView: View {
     private func refreshControllersList() {
         Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in
             controllersList = Ryujinx.shared.getConnectedControllers()
-            var controller = controllersList.first(where: { $0.name == "Apple Touch Controller" })
-            
-            controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
-            
-            controller?.name = "On-Screen Controller"
-            
-            onscreencontroller = controller
-            
-            controllersList.append(controller!)
-            // controllersList.removeAll(where: { $0.name == "Apple Touch Controller" })
+            var controller = controllersList.first(where: { $0.name.hasPrefix("Apple")})
+            self.onscreencontroller = (controller ?? Controller(id: "", name: ""))
             if controllersList.count > 2 {
                 let controller = controllersList[2]
                 currentControllers.append(controller)
                 
-            } else if let controller = controllersList.first(where: { $0.id == controller?.id }), !controllersList.isEmpty {
+            } else if let controller = controllersList.first(where: { $0.id == onscreencontroller.id }), !controllersList.isEmpty {
                 currentControllers.append(controller)
             }
         }