diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj index f95210535..84fa65299 100644 --- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj +++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj @@ -618,7 +618,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = 95J8WZ4TN8; + DEVELOPMENT_TEAM = 4TD3JXVDW7; ENABLE_PREVIEWS = YES; ENABLE_TESTABILITY = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -634,6 +634,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; @@ -677,9 +679,13 @@ "$(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; + PRODUCT_BUNDLE_IDENTIFIER = xyz.belladev.MeloNX; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/App/Core/Headers/Ryujinx-Header.h"; @@ -697,7 +703,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = 95J8WZ4TN8; + DEVELOPMENT_TEAM = 4TD3JXVDW7; ENABLE_PREVIEWS = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -713,6 +719,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; @@ -756,9 +764,13 @@ "$(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; + PRODUCT_BUNDLE_IDENTIFIER = xyz.belladev.MeloNX; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "MeloNX/App/Core/Headers/Ryujinx-Header.h"; diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/benlawrence.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/benlawrence.xcuserdatad/UserInterfaceState.xcuserstate index d95c76d65..7351432d8 100644 Binary files a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/benlawrence.xcuserdatad/UserInterfaceState.xcuserstate and b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/benlawrence.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX - Release.xcscheme b/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX - Release.xcscheme new file mode 100644 index 000000000..951dac0dc --- /dev/null +++ b/src/MeloNX/MeloNX.xcodeproj/xcshareddata/xcschemes/MeloNX - Release.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/benlawrence.xcuserdatad/xcschemes/xcschememanagement.plist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/benlawrence.xcuserdatad/xcschemes/xcschememanagement.plist index 1b8118340..af2d3e04d 100644 --- a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/benlawrence.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/benlawrence.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ SchemeUserState + MeloNX - Release.xcscheme_^#shared#^_ + + orderHint + 1 + MeloNX.xcscheme_^#shared#^_ orderHint @@ -12,7 +17,7 @@ Ryujinx.xcscheme_^#shared#^_ orderHint - 1 + 3 com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_ diff --git a/src/MeloNX/MeloNX/App/Views/ContentView.swift b/src/MeloNX/MeloNX/App/Views/ContentView.swift index 3e9ba4f5d..eec6d7b56 100644 --- a/src/MeloNX/MeloNX/App/Views/ContentView.swift +++ b/src/MeloNX/MeloNX/App/Views/ContentView.swift @@ -232,9 +232,16 @@ struct ContentView: View { } Air.play(AnyView( - Text("Select Game") - .font(.system(size: 100)) - + VStack { + Image(systemName: "gamecontroller") + .font(.system(size: 300)) + .foregroundColor(.gray) + .padding(.bottom, 10) + + Text("Select Game") + .font(.system(size: 150)) + .bold() + } )) let isJIT = UserDefaults.standard.bool(forKey: "JIT-ENABLED") diff --git a/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift index 1e1985753..0e4744e73 100644 --- a/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift +++ b/src/MeloNX/MeloNX/App/Views/SettingsView/SettingsView.swift @@ -48,8 +48,6 @@ struct SettingsView: View { var body: some View { iOSNav { List { - - // Graphics & Performance Section { Picker(selection: $config.aspectRatio) { @@ -80,8 +78,6 @@ struct SettingsView: View { labelWithIcon("Macro HLE", iconName: "gearshape") }.tint(.blue) - - VStack(alignment: .leading, spacing: 10) { HStack { labelWithIcon("Resolution Scale", iconName: "magnifyingglass") @@ -205,7 +201,6 @@ struct SettingsView: View { ForEach(currentControllers) { controller in - var customBinding: Binding { Binding( get: { currentControllers.contains(controller) }, @@ -327,35 +322,32 @@ struct SettingsView: View { } - Section { - - - Toggle(isOn: $config.expandRam) { - labelWithIcon("Expand Guest Ram (6GB)", iconName: "exclamationmark.bubble") - } - .tint(.red) + 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") + Toggle(isOn: $config.ignoreMissingServices) { + labelWithIcon("Ignore Missing Services", iconName: "waveform.path") + } + .tint(.red) + } header: { + Text("Hacks") + .font(.title3.weight(.semibold)) + .textCase(nil) + .headerProminence(.increased) } - .tint(.red) - } header: { - Text("Hacks") - .font(.title3.weight(.semibold)) - .textCase(nil) - .headerProminence(.increased) - } // Other Settings Section { - Toggle(isOn: $ssb) { labelWithIcon("Screenshot Button", iconName: "square.and.arrow.up") } .tint(.blue) Toggle(isOn: $useTrollStore) { - labelWithIcon("TrollStore", iconName: "troll.svg") + labelWithIcon("TrollStore JIT", iconName: "troll.svg") } .tint(.blue) @@ -368,21 +360,18 @@ struct SettingsView: View { labelWithIcon("Trace Logs", iconName: "waveform.path") } .tint(.blue) - - } header: { Text("Miscellaneous Options") .font(.title3.weight(.semibold)) .textCase(nil) .headerProminence(.increased) } footer: { - Text("Enable trace and debug logs for troubleshooting, enable Screenshotting without distractions and Enable automatic TrollStore JIT.") + Text("Enable trace and debug logs for advanced troubleshooting (Note: This degrades performance),\nEnable Screenshot Button for better screenshots\nand Enable TrollStore for automatic TrollStore JIT.") } // Advanced Section { DisclosureGroup { - Toggle(isOn: $mVKPreFillBuffer) { labelWithIcon("MVK: Pre-Fill Metal Command Buffers", iconName: "gearshape") }.tint(.blue) @@ -392,9 +381,12 @@ struct SettingsView: View { Spacer() Text("\(String(Int(getpagesize())))") .foregroundColor(.secondary) - } + Toggle(isOn: $config.dfsIntegrityChecks) { + labelWithIcon("Disable FS Integrity Checks", iconName: "checkmark.shield") + }.tint(.blue) + TextField("Additional Arguments", text: Binding( get: { config.additionalArgs.joined(separator: " ") @@ -417,7 +409,6 @@ struct SettingsView: View { .font(.body) } - } label: { Text("Advanced Options") } @@ -429,7 +420,6 @@ struct SettingsView: View { } footer: { Text("For advanced users. See page size or add custom arguments for experimental features. (Please don't touch this if you don't know what you're doing)") } - } .searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always)) .navigationTitle("Settings") @@ -542,8 +532,6 @@ struct SVGView: UIViewRepresentable { svgName.removeLast(4) } - - let svgLayer = UIView(SVGNamed: svgName) { svgLayer in svgLayer.fillColor = UIColor(color).cgColor // Apply the provided color svgLayer.resizeToFit(hammock.frame) diff --git a/src/MeloNX/MeloNX/Info.plist b/src/MeloNX/MeloNX/Info.plist index d23c87fd9..74e5ca954 100644 --- a/src/MeloNX/MeloNX/Info.plist +++ b/src/MeloNX/MeloNX/Info.plist @@ -4,6 +4,11 @@ MeloID 83f67a0a96bd8628a150d7853e360db5bae64e7769524fae399c4b8e7e6aff17 + UIBackgroundModes + + processing + fetch + UIFileSharingEnabled UTExportedTypeDeclarations diff --git a/src/MeloNX/MeloNX/MeloNXApp.swift b/src/MeloNX/MeloNX/MeloNXApp.swift index 665bf9e4c..cc72ac72c 100644 --- a/src/MeloNX/MeloNX/MeloNXApp.swift +++ b/src/MeloNX/MeloNX/MeloNXApp.swift @@ -9,14 +9,10 @@ import SwiftUI import UIKit import CryptoKit - - @main struct MeloNXApp: App { - @State var showed = false - var body: some Scene { WindowGroup { ZStack { @@ -37,7 +33,11 @@ struct MeloNXApp: App { } } .onAppear { + #if RELEASE initR() + #else + showed = true + #endif } .frame(maxWidth: .infinity, maxHeight: .infinity) .background(Color.black.opacity(1)) @@ -69,19 +69,13 @@ struct MeloNXApp: App { } } } - } - } else { showDMCAAlert() } - } - } - } - } @@ -175,7 +169,6 @@ func drmcheck(completion: @escaping (Bool) -> Void) { } else { completion(false) } - } */ @@ -187,8 +180,6 @@ func InitializeRyujinx(completion: @escaping (Bool) -> Void) { return } - - if (detectRoms(path: path) != value) { completion(false) } @@ -209,7 +200,6 @@ func InitializeRyujinx(completion: @escaping (Bool) -> Void) { completion(false) } - guard let httpResponse = response as? HTTPURLResponse else { completion(false) return @@ -231,8 +221,6 @@ func detectRoms(path string: String) -> String { return romHash.compactMap { String(format: "%02x", $0) }.joined() } - - func addFolders(_ folderPath: String) -> String? { let fileManager = FileManager.default if let data = Data(base64Encoded: folderPath), @@ -243,7 +231,6 @@ func addFolders(_ folderPath: String) -> String? { } extension String { - func print() { Swift.print(self) }