Add multiple missing settings

This commit is contained in:
spidy123222 2025-01-20 05:01:54 -08:00
parent 11305c2aac
commit 7dde0d254a
4 changed files with 117 additions and 24 deletions

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>MeloNX.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>Ryujinx.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
</dict>
<key>com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
</dict>
</dict>
</plist>

View File

@ -56,6 +56,11 @@ class Ryujinx {
var disableDockedMode: Bool var disableDockedMode: Bool
var enableTextureRecompression: Bool var enableTextureRecompression: Bool
var additionalArgs: [String] var additionalArgs: [String]
var maxAnisotropy: Float
var macroHLE: Bool
var ignoreMissingServices: Bool
var expandRam: Bool
init(gamepath: String, init(gamepath: String,
@ -72,7 +77,10 @@ class Ryujinx {
enableTextureRecompression: Bool = true, enableTextureRecompression: Bool = true,
additionalArgs: [String] = [], additionalArgs: [String] = [],
resscale: Float = 1.00, resscale: Float = 1.00,
hypervisor: Bool = false maxAnisotropy: Float = 0,
macroHLE: Bool = false,
ignoreMissingServices: Bool = false,
expandRam: Bool = false
) { ) {
self.gamepath = gamepath self.gamepath = gamepath
self.inputids = inputids self.inputids = inputids
@ -88,7 +96,10 @@ class Ryujinx {
self.resscale = resscale self.resscale = resscale
self.nintendoinput = nintendoinput self.nintendoinput = nintendoinput
self.enableInternet = enableInternet self.enableInternet = enableInternet
self.hypervisor = hypervisor self.maxAnisotropy = maxAnisotropy
self.macroHLE = macroHLE
self.expandRam = expandRam
self.ignoreMissingServices = ignoreMissingServices
} }
} }
@ -182,6 +193,22 @@ class Ryujinx {
args.append(contentsOf: ["--resolution-scale", String(config.resscale)]) args.append(contentsOf: ["--resolution-scale", String(config.resscale)])
} }
if config.expandRam {
args.append(contentsOf: ["--expand-ram", String(config.maxAnisotropy)])
}
if config.ignoreMissingServices {
args.append(contentsOf: ["--ignore-missing-services", String(config.maxAnisotropy)])
}
if config.maxAnisotropy != 0 {
args.append(contentsOf: ["--max-anisotropy", String(config.maxAnisotropy)])
}
if !config.macroHLE {
args.append("--disable-macro-hle")
}
if !config.disableShaderCache { // same with disableShaderCache if !config.disableShaderCache { // same with disableShaderCache
args.append("--disable-shader-cache") args.append("--disable-shader-cache")
} }

View File

@ -32,6 +32,7 @@ struct SettingsView: View {
@AppStorage("performacehud") var performacehud: Bool = false @AppStorage("performacehud") var performacehud: Bool = false
@State private var showResolutionInfo = false @State private var showResolutionInfo = false
@State private var showAnisotropicInfo = false
@State private var searchText = "" @State private var searchText = ""
var filteredMemoryModes: [(String, String)] { var filteredMemoryModes: [(String, String)] {
@ -67,6 +68,10 @@ struct SettingsView: View {
} }
.tint(.blue) .tint(.blue)
Toggle(isOn: $config.macroHLE) {
labelWithIcon("Macro HLE", iconName: "gearshape")
}.tint(.blue)
VStack(alignment: .leading, spacing: 10) { VStack(alignment: .leading, spacing: 10) {
@ -109,6 +114,46 @@ struct SettingsView: View {
} }
.padding(.vertical, 8) .padding(.vertical, 8)
VStack(alignment: .leading, spacing: 10) {
HStack {
labelWithIcon("Max Anisotropic Scale", iconName: "magnifyingglass")
.font(.headline)
Spacer()
Button {
showAnisotropicInfo.toggle()
} label: {
Image(systemName: "info.circle")
.symbolRenderingMode(.hierarchical)
.foregroundStyle(.secondary)
}
.buttonStyle(.plain)
.help("Learn more about Max Anisotropic Scale")
.alert(isPresented: $showAnisotropicInfo) {
Alert(
title: Text("Max Anisotripic Scale"),
message: Text("Adjust the internal Anisotropic resolution. Higher values improve visuals but may reduce performance. Default at 0 lets game decide."),
dismissButton: .default(Text("OK"))
)
}
}
Slider(value: $config.maxAnisotropy, in: 0...16.0, step: 0.1) {
Text("Resolution Scale")
} minimumValueLabel: {
Text("0x")
.font(.footnote)
.foregroundColor(.secondary)
} maximumValueLabel: {
Text("16.0x")
.font(.footnote)
.foregroundColor(.secondary)
}
Text("\(config.maxAnisotropy, specifier: "%.2f")x")
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding(.vertical, 8)
Toggle(isOn: $performacehud) { Toggle(isOn: $performacehud) {
labelWithIcon("Performance Overlay", iconName: "speedometer") labelWithIcon("Performance Overlay", iconName: "speedometer")
} }
@ -229,28 +274,6 @@ struct SettingsView: View {
labelWithIcon("Memory Manager Mode", iconName: "gearshape") labelWithIcon("Memory Manager Mode", iconName: "gearshape")
} }
} }
if let cpuInfo = getCPUInfo(), cpuInfo.hasPrefix("Apple M") {
if #available (iOS 16.4, *), (false) {
Toggle(isOn: .constant(false)) {
labelWithIcon("Hypervisor", iconName: "bolt.fill")
}
.tint(.blue)
.disabled(true)
.onAppear() {
print("CPU Info: \(cpuInfo)")
}
} else {
Toggle(isOn: $config.hypervisor) {
labelWithIcon("Hypervisor", iconName: "bolt.fill")
}
.tint(.blue)
.onAppear() {
print("CPU Info: \(cpuInfo)")
}
}
}
} header: { } header: {
Text("CPU Mode") Text("CPU Mode")
.font(.title3.weight(.semibold)) .font(.title3.weight(.semibold))
@ -259,8 +282,27 @@ struct SettingsView: View {
} footer: { } footer: {
Text("Select how memory is managed. 'Host (fast)' is best for most users.") Text("Select how memory is managed. 'Host (fast)' is best for most users.")
} }
Section {
Toggle(isOn: $config.expandRam) {
labelWithIcon("Expand Guest Ram (6GB)", iconName: "exclamationmark.bubble")
}
.tint(.red)
Toggle(isOn: $config.ignoreMissingServices) {
labelWithIcon("Ignore Missing Services", iconName: "waveform.path")
}
.tint(.red)
} header: {
Text("Hacks")
.font(.title3.weight(.semibold))
.textCase(nil)
.headerProminence(.increased)
}
// Other Settings // Other Settings
Section { Section {