diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
index 2e4cc96e4..87259d840 100644
--- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
+++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj
@@ -75,7 +75,6 @@
Dependencies/XCFrameworks/libavutil.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
Dependencies/XCFrameworks/libswresample.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
Dependencies/XCFrameworks/libswscale.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
- Dependencies/XCFrameworks/libteakra.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
};
buildPhase = 4E80AA092CD6FAA800029585 /* Embed Libraries */;
membershipExceptions = (
@@ -90,7 +89,6 @@
Dependencies/XCFrameworks/libSPIRV.xcframework,
Dependencies/XCFrameworks/libswresample.xcframework,
Dependencies/XCFrameworks/libswscale.xcframework,
- Dependencies/XCFrameworks/libteakra.xcframework,
Dependencies/XCFrameworks/MoltenVK.xcframework,
Dependencies/XCFrameworks/SDL2.xcframework,
);
@@ -496,7 +494,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -572,7 +570,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.6;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
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 9181853cb..aacb701c6 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/xcdebugger/Breakpoints_v2.xcbkptlist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index fc23cc2ae..6b8d9f62c 100644
--- a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -23,7 +23,13 @@
+ consoleCommand = "process handle SIGUSR1 -s false -n false">
+
+
+
+
@@ -45,30 +51,5 @@
landmarkType = "7">
-
-
-
-
-
-
-
-
-
-
diff --git a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
index a910e8949..9dcf13849 100644
--- a/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
+++ b/src/MeloNX/MeloNX/Core/Swift/Ryujinx.swift
@@ -15,6 +15,20 @@ struct Controller: Identifiable, Hashable {
let name: String
}
+struct iOSNav: View {
+ @ViewBuilder var content: () -> Content
+
+ var body: some View {
+ if #available(iOS 16, *) {
+ NavigationStack(root: content)
+ } else {
+ NavigationView(content: content)
+ .navigationViewStyle(StackNavigationViewStyle())
+ .navigationViewStyle(.stack)
+ }
+ }
+}
+
class Ryujinx {
private var isRunning = false
@@ -40,7 +54,7 @@ class Ryujinx {
tracelogs: Bool = false,
listinputids: Bool = false,
fullscreen: Bool = false,
- hostMappedMemory: Bool = false,
+ hostMappedMemory: Bool = true,
disableVSync: Bool = true,
disableShaderCache: Bool = false,
disableDockedMode: Bool = true,
diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift
index 86612fda9..a2ca4e171 100644
--- a/src/MeloNX/MeloNX/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/Views/ContentView.swift
@@ -11,7 +11,8 @@ import GameController
struct MoltenVKSettings: Codable, Hashable {
let string: String
- var value: String
+ var bool: Bool?
+ var value: String?
}
struct ContentView: View {
@@ -22,11 +23,11 @@ struct ContentView: View {
@State var currentControllers: [Controller] = []
@State var config: Ryujinx.Configuration = Ryujinx.Configuration(gamepath: "")
- @State private var settings: [MoltenVKSettings] = [
- MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: "0"),
- MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "0"),
+ @State var settings: [MoltenVKSettings] = [
+ // MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: ""),
+ // MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "1"),
MoltenVKSettings(string: "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE", value: "1024"),
- MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "0"),
+ MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS", value: "1"),
MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1")
]
@@ -58,7 +59,7 @@ struct ContentView: View {
}
var body: some View {
- NavigationStack {
+ iOSNav {
if let game {
ZStack {
@@ -80,7 +81,7 @@ struct ContentView: View {
List {
Section("Settings") {
NavigationLink {
- SettingsView(config: $config)
+ SettingsView(config: $config, MoltenVKSettings: $settings)
} label: {
Text("Config")
}
@@ -146,7 +147,7 @@ struct ContentView: View {
let physicalMemory = ProcessInfo.processInfo.physicalMemory
let totalMemoryInGB = Double(physicalMemory) / (1024 * 1024 * 1024)
- let mem = totalMemoryInGB - 1
+ let mem = totalMemoryInGB
print(mem)
// Allocate memory
let pointer = UnsafeMutableRawPointer.allocate(byteCount: Int(mem), alignment: MemoryLayout.alignment)
diff --git a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
index 23f8291e7..038be1bf9 100644
--- a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
+++ b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
@@ -9,39 +9,41 @@ import SwiftUI
struct SettingsView: View {
@Binding var config: Ryujinx.Configuration
+ @Binding var MoltenVKSettings: [MoltenVKSettings]
var body: some View {
Form {
-
- Section(header: Text("Graphics and Performance")) {
- Toggle("Fullscreen", isOn: $config.fullscreen)
- Toggle("Disable V-Sync", isOn: $config.disableVSync)
- Toggle("Disable Shader Cache", isOn: $config.disableShaderCache)
- Toggle("Enable Texture Recompression", isOn: $config.enableTextureRecompression)
- }
-
- Section(header: Text("Input Settings")) {
- Toggle("List Input IDs", isOn: $config.listinputids)
- Toggle("Host Mapped Memory", isOn: $config.hostMappedMemory)
- Toggle("Disable Docked Mode", isOn: $config.disableDockedMode)
- }
-
- Section(header: Text("Logging Settings")) {
- Toggle("Enable Debug Logs", isOn: $config.debuglogs)
- Toggle("Enable Trace Logs", isOn: $config.tracelogs)
- }
-
- Section(header: Text("Game Settings")) {
- //TextField("Game Path", text: $config.gamepath)
+ Section(header: Text("Ryujinx")) {
+ Section(header: Text("Graphics and Performance")) {
+ Toggle("Fullscreen", isOn: $config.fullscreen)
+ Toggle("Disable V-Sync", isOn: $config.disableVSync)
+ Toggle("Disable Shader Cache", isOn: $config.disableShaderCache)
+ Toggle("Enable Texture Recompression", isOn: $config.enableTextureRecompression)
+ }
- TextField("Additional Arguments", text: Binding(
- get: {
- config.additionalArgs.joined(separator: ", ")
- },
- set: { newValue in
- config.additionalArgs = newValue.split(separator: ",").map { String($0).trimmingCharacters(in: .whitespaces) }
- }
- ))
+ Section(header: Text("Input Settings")) {
+ Toggle("List Input IDs", isOn: $config.listinputids)
+ Toggle("Host Mapped Memory", isOn: $config.hostMappedMemory)
+ Toggle("Disable Docked Mode", isOn: $config.disableDockedMode)
+ }
+
+ Section(header: Text("Logging Settings")) {
+ Toggle("Enable Debug Logs", isOn: $config.debuglogs)
+ Toggle("Enable Trace Logs", isOn: $config.tracelogs)
+ }
+
+ Section(header: Text("Game Settings")) {
+ //TextField("Game Path", text: $config.gamepath)
+
+ TextField("Additional Arguments", text: Binding(
+ get: {
+ config.additionalArgs.joined(separator: ", ")
+ },
+ set: { newValue in
+ config.additionalArgs = newValue.split(separator: ",").map { String($0).trimmingCharacters(in: .whitespaces) }
+ }
+ ))
+ }
}
}
.onAppear {