forked from MeloNX/MeloNX
Fix Keyboard and add Disable PTC mode
This commit is contained in:
parent
c0e8570293
commit
e5c5e8572e
@ -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;
|
||||
|
Binary file not shown.
@ -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>
|
||||
|
@ -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")
|
||||
|
@ -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")
|
||||
}
|
||||
|
@ -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")
|
||||
|
Binary file not shown.
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user