diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
index b9cdd4b14..13e35880a 100644
--- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
+++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
@@ -54,6 +54,16 @@
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXCopyFilesBuildPhase section */
+		4E50F49E2D5CC28B0080F1D1 /* Embed Watch Content */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			name = "Embed Watch Content";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		4E80AA092CD6FAA800029585 /* Embed Libraries */ = {
 			isa = PBXCopyFilesBuildPhase;
 			buildActionMask = 2147483647;
@@ -269,6 +279,7 @@
 				4E80A98A2CD6F54500029585 /* Frameworks */,
 				4E80A98B2CD6F54500029585 /* Resources */,
 				4E80AA092CD6FAA800029585 /* Embed Libraries */,
+				4E50F49E2D5CC28B0080F1D1 /* Embed Watch Content */,
 			);
 			buildRules = (
 			);
@@ -339,7 +350,7 @@
 			isa = PBXProject;
 			attributes = {
 				BuildIndependentTargetsInParallel = 1;
-				LastSwiftUpdateCheck = 1610;
+				LastSwiftUpdateCheck = 1620;
 				LastUpgradeCheck = 1610;
 				TargetAttributes = {
 					4E80A98C2CD6F54500029585 = {
@@ -641,6 +652,8 @@
 					"$(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",
 				);
 				GCC_OPTIMIZATION_LEVEL = fast;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -687,6 +700,10 @@
 					"$(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;
@@ -728,6 +745,8 @@
 					"$(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",
 				);
 				GCC_OPTIMIZATION_LEVEL = fast;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -774,6 +793,10 @@
 					"$(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 67e0b687b..dc73d422c 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.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist
index 62375ba69..19b8e18b3 100644
--- a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -12,12 +12,12 @@
 		<key>Ryujinx.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>1</integer>
+			<integer>4</integer>
 		</dict>
 		<key>com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>2</integer>
+			<integer>3</integer>
 		</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
diff --git a/src/MeloNX/MeloNX/App/Core/Ryujinx/Ryujinx.swift b/src/MeloNX/MeloNX/App/Core/Ryujinx/Ryujinx.swift
index 7ed6c80ec..a168f5d84 100644
--- a/src/MeloNX/MeloNX/App/Core/Ryujinx/Ryujinx.swift
+++ b/src/MeloNX/MeloNX/App/Core/Ryujinx/Ryujinx.swift
@@ -91,6 +91,7 @@ class Ryujinx {
         var ignoreMissingServices: Bool
         var expandRam: Bool
         var dfsIntegrityChecks: Bool
+        var disablePTC: Bool
         
 
         init(gamepath: String,
@@ -112,7 +113,8 @@ class Ryujinx {
              ignoreMissingServices: Bool = false,
              hypervisor: Bool = false,
              expandRam: Bool = false,
-             dfsIntegrityChecks: Bool = false
+             dfsIntegrityChecks: Bool = false,
+             disablePTC: Bool = false
         ) {
             self.gamepath = gamepath
             self.inputids = inputids
@@ -134,6 +136,7 @@ class Ryujinx {
             self.ignoreMissingServices = ignoreMissingServices
             self.hypervisor = hypervisor
             self.dfsIntegrityChecks = dfsIntegrityChecks
+            self.disablePTC = disablePTC
         }
     }
 
@@ -261,8 +264,9 @@ class Ryujinx {
             args.append("--correct-controller")
         }
         
-        
-        // args.append("--disable-vsync")
+        if config.disablePTC {
+            args.append("--disable-ptc")
+        }
         
         if config.hypervisor {
             args.append("--use-hypervisor")
diff --git a/src/MeloNX/MeloNX/App/Views/ContentView.swift b/src/MeloNX/MeloNX/App/Views/ContentView.swift
index 3747ef73d..6ee4d3f7d 100644
--- a/src/MeloNX/MeloNX/App/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/App/Views/ContentView.swift
@@ -42,6 +42,7 @@ struct ContentView: View {
     @AppStorage("quit") var quit: Bool = false
     @State var quits: Bool = false
     @AppStorage("MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS") var mVKPreFillBuffer: Bool = true
+    @AppStorage("MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS") var syncqsubmits: Bool = false
     
     // Loading Animation
     @State private var clumpOffset: CGFloat = -100
@@ -62,6 +63,7 @@ struct ContentView: View {
             MoltenVKSettings(string: "MVK_USE_METAL_PRIVATE_API", value: "1"),
             MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "1"),
             MoltenVKSettings(string: "MVK_DEBUG", value: "0"),
+            MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: "0"),
             // MoltenVKSettings(string: "MVK_CONFIG_LOG_LEVEL", value: "0"),
             // MVK_CONFIG_LOG_LEVEL
             //MVK_DEBUG
@@ -354,6 +356,11 @@ struct ContentView: View {
             setenv(setting.string, setting.value, 1)
         }
         
+        if syncqsubmits {
+            let setting = MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: "2")
+            setenv(setting.string, setting.value, 1)
+        }
+        
         if config.inputids.isEmpty {
             config.inputids.append("0")
         }
diff --git a/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift
index 5f70532c7..374767c2a 100644
--- a/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift
+++ b/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift
@@ -34,6 +34,7 @@ struct SettingsView: View {
     @AppStorage("showScreenShotButton") var ssb: Bool = false
     
     @AppStorage("MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS") var mVKPreFillBuffer: Bool = false
+    @AppStorage("MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS") var syncqsubmits: Bool = false
     
     @AppStorage("performacehud") var performacehud: Bool = false
     
@@ -85,8 +86,7 @@ struct SettingsView: View {
                     Toggle(isOn: $config.macroHLE) {
                         labelWithIcon("Macro HLE", iconName: "gearshape")
                     }.tint(.blue)
-                    
-                    
+                        
                     
                     VStack(alignment: .leading, spacing: 10) {
                         HStack {
@@ -302,8 +302,12 @@ struct SettingsView: View {
                         }
                     }
                     
+                    Toggle(isOn: $config.disablePTC) {
+                        labelWithIcon("Disable PTC", iconName: "cpu")
+                    }.tint(.blue)
+                    
                     if let cpuInfo = getCPUInfo(), cpuInfo.hasPrefix("Apple M") {
-                        if #available (iOS 16.4, *), getEntitlementValue("com.apple.private.hypervisor") {
+                        if #available (iOS 16.4, *) {
                             Toggle(isOn: .constant(false)) {
                                 labelWithIcon("Hypervisor", iconName: "bolt.fill")
                             }
@@ -312,19 +316,18 @@ struct SettingsView: View {
                             .onAppear() {
                                 print("CPU Info: \(cpuInfo)")
                             }
-                        } else {
+                        } else if getEntitlementValue("com.apple.private.hypervisor") {
                             Toggle(isOn: $config.hypervisor) {
                                 labelWithIcon("Hypervisor", iconName: "bolt.fill")
                             }
                             .tint(.blue)
                             .onAppear() {
                                 print("CPU Info: \(cpuInfo)")
-                                
                             }
                         }
                     }
                 } header: {
-                    Text("CPU Mode")
+                    Text("CPU")
                         .font(.title3.weight(.semibold))
                         .textCase(nil)
                         .headerProminence(.increased)
@@ -391,6 +394,24 @@ struct SettingsView: View {
                         .tint(.blue)
                     }
                     
+                    Toggle(isOn: $syncqsubmits) {
+                        labelWithIcon("MVK: Synchronous Queue Submits", iconName: "line.diagonal")
+                    }.tint(.blue)
+                        .contextMenu() {
+                            Button {
+                                if let mainWindow = UIApplication.shared.windows.last {
+                                    let alertController = UIAlertController(title: "About MVK: Synchronous Queue Submits", message: "Enable this option if Mario Kart 8 is crashing at Grand Prix mode.", preferredStyle: .alert)
+                                    
+                                    let doneButton = UIAlertAction(title: "OK", style: .cancel, handler: nil)
+                                    alertController.addAction(doneButton)
+                                    
+                                    mainWindow.rootViewController?.present(alertController, animated: true)
+                                }
+                            } label: {
+                                Text("About")
+                            }
+                        }
+                    
                     DisclosureGroup {
                         Toggle(isOn: $config.debuglogs) {
                             labelWithIcon("Debug Logs", iconName: "exclamationmark.bubble")
diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/RyujinxKeyboard.framework/RyujinxKeyboard b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/RyujinxKeyboard.framework/RyujinxKeyboard
index 9e0dcd8c4..a1ba63ade 100755
Binary files a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/RyujinxKeyboard.framework/RyujinxKeyboard and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/RyujinxKeyboard.framework/RyujinxKeyboard differ
diff --git a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
index e9963d45a..f973746fa 100644
--- a/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
+++ b/src/Ryujinx.Graphics.Vulkan/MoltenVK/MVKInitialization.cs
@@ -23,13 +23,9 @@ namespace Ryujinx.Graphics.Vulkan.MoltenVK
 
             config.UseMetalArgumentBuffers = true;
 
-            if (OperatingSystem.IsIOSVersionAtLeast(17)) {
-                config.SemaphoreSupportStyle = MVKVkSemaphoreSupportStyle.MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE;
-            }
+            config.SemaphoreSupportStyle = MVKVkSemaphoreSupportStyle.MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_SINGLE_QUEUE;
 
             config.MaxActiveMetalCommandBuffersPerQueue = 1024;
-            
-            config.SynchronousQueueSubmits = false;
 
             config.ResumeLostDevice = true;