From 2fbe6eb9daf783b9ad1e85ae37d1aa8dcffa8442 Mon Sep 17 00:00:00 2001
From: Catsoftware <leopold.schaffhauser@gmail.com>
Date: Fri, 20 Dec 2024 18:44:35 +0000
Subject: [PATCH] Add Trollstore JIT

---
 .../UserInterfaceState.xcuserstate            | Bin 0 -> 21587 bytes
 src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift    |  25 ++++++++++++++++++
 .../MeloNX/Core/{DetectJIT => JIT}/utils.h    |   0
 .../MeloNX/Core/{DetectJIT => JIT}/utils.m    |   2 +-
 src/MeloNX/MeloNX/Views/ContentView.swift     |  17 ++++++++++--
 .../Views/SettingsView/SettingsView.swift     |   7 ++++-
 6 files changed, 47 insertions(+), 4 deletions(-)
 create mode 100644 src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate
 create mode 100644 src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift
 rename src/MeloNX/MeloNX/Core/{DetectJIT => JIT}/utils.h (100%)
 rename src/MeloNX/MeloNX/Core/{DetectJIT => JIT}/utils.m (99%)

diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000000000000000000000000000000000000..f3138f8411742fd3d03cf4c0e26f56b3d1d895fe
GIT binary patch
literal 21587
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

literal 0
HcmV?d00001

diff --git a/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift b/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift
new file mode 100644
index 000000000..8603ef6d6
--- /dev/null
+++ b/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift
@@ -0,0 +1,25 @@
+//
+//  AskForJIT.swift
+//  Pomelo
+//
+//  Created by Stossy11 on 9/10/2024.
+//  Copyright © 2024 Stossy11. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+func askForJIT() {
+    // Check if TrollStore exists by checking the presence of the directory
+    let urlScheme = "apple-magnifier://enable-jit?bundle-id=\(Bundle.main.bundleIdentifier!)"
+    if let launchURL = URL(string: urlScheme) {
+        if UIApplication.shared.canOpenURL(launchURL) {
+            // Open the URL to enable JIT
+            UIApplication.shared.open(launchURL, options: [:], completionHandler: nil)
+            
+            return
+        }
+    }
+    
+    return 
+}
diff --git a/src/MeloNX/MeloNX/Core/DetectJIT/utils.h b/src/MeloNX/MeloNX/Core/JIT/utils.h
similarity index 100%
rename from src/MeloNX/MeloNX/Core/DetectJIT/utils.h
rename to src/MeloNX/MeloNX/Core/JIT/utils.h
diff --git a/src/MeloNX/MeloNX/Core/DetectJIT/utils.m b/src/MeloNX/MeloNX/Core/JIT/utils.m
similarity index 99%
rename from src/MeloNX/MeloNX/Core/DetectJIT/utils.m
rename to src/MeloNX/MeloNX/Core/JIT/utils.m
index 664ad43f1..de9f31fd6 100644
--- a/src/MeloNX/MeloNX/Core/DetectJIT/utils.m
+++ b/src/MeloNX/MeloNX/Core/JIT/utils.m
@@ -26,7 +26,7 @@ BOOL getEntitlementValue(NSString *key)
     return value != nil && [(__bridge id)value boolValue];
 }
 
-BOOL isJITEnabled(void) 
+BOOL isJITEnabled(void)
 {
     if (getEntitlementValue(@"dynamic-codesigning")) 
     {
diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift
index 5942f3cb9..9365efe5c 100644
--- a/src/MeloNX/MeloNX/Views/ContentView.swift
+++ b/src/MeloNX/MeloNX/Views/ContentView.swift
@@ -28,6 +28,7 @@ struct ContentView: View {
     @State private var currentControllers: [Controller] = []
     @State private var config: Ryujinx.Configuration
     @State private var settings: [MoltenVKSettings]
+    @AppStorage("useTrollStore") var useTrollStore: Bool = false
     @State private var isVirtualControllerActive: Bool = false
     @AppStorage("isVirtualController") var isVCA: Bool = true
     @State var onscreencontroller: Controller = Controller(id: "", name: "")
@@ -77,12 +78,16 @@ struct ContentView: View {
                     quits = false
                 }
         }
+        
     }
-    
+        
     // MARK: - View Components
     private var emulationView: some View {
-        ZStack {}
+        ZStack {
+            
+        }
             .onAppear {
+                
                 setupEmulation()
             }
     }
@@ -91,6 +96,14 @@ struct ContentView: View {
         MainTabView(startemu: $game, config: $config, MVKconfig: $settings, controllersList: $controllersList, currentControllers: $currentControllers, onscreencontroller: $onscreencontroller)
             .onAppear() {
                 refreshControllersList()
+                    
+                        
+                        let isJIT = UserDefaults.standard.bool(forKey: "JIT-ENABLED")
+                        
+                        if !isJIT, useTrollStore {
+                            askForJIT()
+                        }
+                    
             }
     }
     
diff --git a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
index 43b32858b..95fc7a3cb 100644
--- a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
+++ b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift
@@ -15,6 +15,7 @@ struct SettingsView: View {
     @Binding var currentControllers: [Controller]
     
     @Binding var onscreencontroller: Controller
+    @AppStorage("useTrollStore") var useTrollStore: Bool = false
     
     @AppStorage("ignoreJIT") var ignoreJIT: Bool = false
     
@@ -59,7 +60,11 @@ struct SettingsView: View {
                         labelWithIcon("Disable Docked Mode", iconName: "dock.rectangle")
                     }
                     .tint(.blue)
-
+                                    Toggle(isOn: $useTrollStore) {
+                                        labelWithIcon("Trollstore", iconName: "stroller")
+                                    }
+                                    .tint(.blue)
+                    
                     VStack(alignment: .leading, spacing: 10) {
                         HStack {
                             labelWithIcon("Resolution Scale", iconName: "magnifyingglass")