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)
}